0

以下はクエリの例です。または句を使用してインデックスを追加する方法は?

select fild1,fld2
  from tablename 
 where (field3='XXXX' or field4='YYYY') and field6='xdffgfd';

以下のインデックスは機能しますか?

ALTER TABLE tablename ADD INDEX ind_name(field3,field4,field6);
4

1 に答える 1

2

いいえ。これは適切なインデックス作成戦略ではありません。提案する複合インデックスはルックアップには機能しますが、field3ルックアップには機能しませんfield4

そのために別のインデックスが必要になりますfield4(field4, field6)インデックスに加えて複合インデックスを指定する(field3,field6)と、句の両方の部分ORをルックアップ用に最適化できますが、挿入と更新にオーバーヘッドが発生します。

于 2012-09-12T17:23:18.210 に答える