2012-02-29 19 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

答えて

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トランザクションは "タイムスタンプベース"(私はちょうどその前にビデオを見た、面白いもの)です.. –

4

これは古いスレッドだと私は知っていますが、私はMySQLのMERGEストレージエンジンを検索している人がいると思います。 UNIONを使用して、データベース間でも、2つの表を1つの表に連結することができます。アプリケーションの場合、通常の表のように見えます。

いくつかの制限があります。

  • の表は、あなたがINSERT_METHODを指定しない場合のみ、MyISAMテーブル
  • で動作します
  • 同一である必要があり、テーブルは
  • -のみを読むことができるだろう重要な一意性スパンテーブルを持つことを慎重にするか、奇妙な結果をもたらすでしょう。

ここをクリックしてください:http://dev.mysql.com/doc/refman/5.0/en/merge-storage-engine.html