1

MySQL のインデックスは左側にあると読んだので、2 つの列field1にまたがるインデックスを作成すると、次のfield2ことができます。

 SELECT .. FROM .. WHERE `field1` = 'x' AND `field2` = 'y';

 SELECT .. FROM .. WHERE `field1` = 'x';

そしてどちらでもいいのでは?両方の列でクエリを実行することもあれば、最初の列だけでクエリを実行することもあるからです。それとも、両方のシナリオで 2 つの異なるインデックスを使用する方がよいでしょうか?

4

2 に答える 2

1

シモンテンプラー、その通りです。どちらのクエリも正しいです。実行していない限り:

 SELECT .. FROM .. WHERE `field2` = 'y' AND `field1` = 'x';

また

 SELECT .. FROM .. WHERE `field2` = 'y';

構成されたインデックスを保持することは問題になりません。

于 2013-04-30T04:35:27.093 に答える
0

はい、2 列のインデックスは両方のクエリにメリットがあります。2 つのインデックスを作成する必要はありません。

実際、ツールpt-duplicate-key-checkerは、単一列のインデックスを冗長であると報告します。

于 2013-04-30T04:45:06.327 に答える