0

約 17 の正規化された列があり、約 600 万レコードの InnoDB テーブルがあります。テーブルのサイズは ~15GB です。テーブルからのクエリに時間がかかりすぎて、タイムアウト/クラッシュすることがあります。テーブルを分割することを考えていますが、どちらが良いか混乱しています。列を同じ/異なる DB の異なるテーブルに分割しますか? または、テーブルの行を別の DB に分割しますが、どの行が DB のどこにあるのかを知るにはどうすればよいでしょうか。

誰かが Map/Reduce について言及しましたが、私はさらに混乱しました。これに関するヘルプは大歓迎です。

ありがとう。

4

1 に答える 1

3

テーブルを分割してクエリを高速化することは、私がとるステップではありません。まず、クエリを変更したり、インデックスを追加して高速化できないかどうかを確認します。より良い回答を提供できるように、質問にクエリとテーブルを追加することをお勧めします。

クエリとインデックスを既に最適化している場合でも、パーティショニングを試すことができます。これにより、たとえば異なるハードディスクにテーブルが物理的に分割されますが、論理的には 1 つのテーブルのままです。つまり、クエリを高速化しながらクエリを変更する必要はありません。

于 2011-02-13T16:02:07.500 に答える