2012-02-29 55 views
1

在免費/開源數據庫中是否有任何Oracle分區的替代方案?我對查詢的分區消除以及在不使用DELETE事務的情況下截斷單個分區的操作能力感興趣。Oracle分區的替代方案

我見過PostgreSQL支持使用表繼承進行分區,但它看起來像是很多手動工作。

有沒有其他的選擇嗎? MySQL是否更好?

+0

請看看這個解決方案:'手工分區 - Oracle XE/SE的工作示例'http://stackoverflow.com/questions/5801407/what-feature-to-use-in-oracle-standard-版本就像分區在orac – wildloop 2015-08-18 02:43:44

回答

4

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。

+0

VoltDB交易是「基於時間戳」(我有一天看了一個視頻,有趣的東西).. – 2012-02-29 21:51:51

4

我知道這是一個古老的線程,但我想我會提到MySQL的MERGE存儲引擎,供人們搜索。您可以使用它將兩個表連接成一個使用UNION的表,即使是跨數據庫。對於應用程序,它看起來像一個普通表。

有一些限制:

  • 表必須是相同的
  • 只有MyISAM表的工作原理
  • 如果不指定INSERT_METHOD,該表將被
  • 只讀要小心有關鍵唯一性跨度表或您將有奇數結果

更多這裏:http://dev.mysql.com/doc/refman/5.0/en/merge-storage-engine.html