2011-08-05 9 views
6

私は巨大なデータセットを持っています。構造は次のようになります:MySQLの複数のフィールドインデックスは良い選択ですか?

K_Field1, K_Field2, K_Field3, K_Field4, D_Field5, D_Field6, D_Field7, D_field8 

問題は、最初の4フィールド(K_Field1,K_Field2,K_Field3,K_Field4)が一緒に行を一意に識別することです。これらのフィールドをフィールドとして使用して1つのテーブルを作成しました。

私はその構造を使用してテーブルに100万行を持っているとしましょう。新しいレコードをインポートする場合は、すでにデータベースに入っているかどうかを判断する必要があります。そうであれば、それを更新しなければならない場合は、新しい行を挿入する必要があります。

これを行うには、最初の4列に複数のフィールドインデックスを入れる必要があります。これは最善の解決策ではありません。そのデータを格納および検索するためのより良いデータベース構造がありますか、または4フィールドインデックスで暮らす必要がありますか?

私は、MySQL

+2

なぜマルチカラムインデックスを持つのが悪い考えですか?それはあなたの唯一の解決策です。 – nobody

+0

私は何とかして複数のテーブルにデータを分割して構造をより効率的にすることを望んでいましたが、間違っていたようです。あなたのコメントをありがとう! – mimrock

答えて

5

を使用しています、あなたがしなければならない実際には最初の4列にインデックスを作成するには何もありません:それはあなたの状況の現実ですので

create unique index mytable_key on mytable(K_Field1,K_Field2,K_Field3,K_Field4); 

が。

「正しい」解決策でもあります。

関連する問題