2008-09-16 6 views
1

最速の読み込みをするために、最大500,000エントリのインデックスを作成する必要があります。インデックスは、ディスク上で定期的に再構築する必要があります。私は、ディスク上のハッシュのような単純なファイルか、組み込みデータベース内の単一のテーブルのどちらかを決定しようとしています。私はRDBMSエンジンの必要はありません。最も速い読み取り応答を得るためのインデックスを作成する最良の方法は何ですか?

+0

これは何ですか?これはデータベース管理システムの内部ですか(MySQLなど?) ディスク上にフラットファイルのインデックスを作成していますか?彼らはバイナリかASCIIですか?何が起こっている? –

+0

フラットファイルにすることができます。エントリはASCIIで最大512文字です。私は状態属性を格納して取得する必要があります。 – Notitze

答えて

0

これはMapReduceが発明したものです。 HadoopはクールなJava実装です。

+0

MapReduceは、データベースのインデックス応答時間を短縮することとは関係ありません。 –

+0

いいえ、そうではありません。しかし、私が質問を理解すると、それはディスクからの読み込みです。 – sblundy

1

私は、リレーショナルDBMS(mySql、Oracle、Postgresなど)のインデックステーブルを参照しているとします。

インデックスは、テーブルのフィールドのサブセットのレコードを特定の順序で保持するセカンダリデータストアです。

インデックスを作成した場合、そのWHERE句で索引付けされたフィールドのサブセットを含むクエリは高速に実行されます。

ただし、インデックスを追加すると、INSERTのパフォーマンスが低下します。

通常、インデックスが破損しない限り、インデックスを再構築する必要はありません。彼らは、あなたのDBMSによってオンザフライで維持されるべきです。

0

データが完全に最新である必要がない場合は、データウェアハウスツールをOLAP用に使用することも考えられます(MSOLAPなど)。事前計算されたデータに基づいて、高速で読み取り専用のクエリを実行できます。

1

おそらくBDB?それは高いパーフォーマンスです。 DBMSを使用しないデータベース。

1

状態オブジェクトをキーで保存している場合は、Berkeley DBのようになります。

1

cdbデータが変更されない場合。

/アラン

1

PyTables「高速更新や削除を必要としない状況で、OPSIは、おそらく利用可能な最善のインデックスエンジンの一つである」とプロ主張。しかし、私は個人的にそれを使用していませんでしたが、PyTablesのF/OSSのバージョンは、すでにあなたに良いパフォーマンスを提供します提供します:

http://www.pytables.org/moin/PyTablesPro

関連する問題