Oracle分区的替代方法

wrs*_*der 1 mysql oracle postgresql partitioning

在免费/开源数据库中,Oracle分区有什么好的替代方法吗?我既对查询的分区消除感兴趣,又对不进行DELETE事务而截断单个分区的操作能力感兴趣。

我已经看到PostgreSQL对通过表继承进行分区提供了一些支持,但是似乎需要很多手动工作。

还有其他选择吗?MySQL更好吗?

Jon*_*her 5

Oracle / DB2对分区到表空间具有最好的支持。我曾经使用过这两种解决方案,当您使用大量的关系数据时,让供应商为您提供支持非常有用。

MySql支持分区http://dev.mysql.com/doc/refman/5.1/en/partitioning.html我从来没有直接使用过MySql分区,但是可以做到。有几种分区类型,哈希可能是您的最佳选择。请记住,MySQL集群是主线MySQL版本之后的几个版本。

根据您的应用程序层,另一种选择是使用诸如Hibernate碎片之类的东西。基本上,使用算法,您的应用程序将根据您提供的定义将请求定向到正确的数据库。

最后,如果可以选择的话,总会有NoSQL路由。像MongoDB / Cassandra这样的东西是为大型数据集构建的,但是您丢失了ACID事务。VoltDB支持SQL,我认为它也支持ACID事务。

总的来说,除非您使用NoSQL,否则我会说您的选择仅限于像Oracle / DB2这样的“透明”分区。


ckm*_*ckm 5

我知道这是一个旧线程,但是我想为人们搜索提到MySQL的MERGE存储引擎。您可以使用它使用UNION将两个表合并为一个表,即使是跨数据库也是如此。对于应用程序,它看起来就像一张普通表。

有一些限制:

  • 表格必须相同
  • 仅适用于MyISAM表
  • 如果您未指定INSERT_METHOD,则该表将为只读
  • 注意拥有关键唯一性跨度表,否则结果将会很奇怪

此处更多信息:http : //dev.mysql.com/doc/refman/5.0/en/merge-storage-engine.html