0

名と名前のように2つのフィールドを持つテーブルがあるとします。

両方のフィールドに複合インデックスを追加する場合、理論的には最初のフィールドのインデックスを作成する必要があります。私の知る限り、そのフィールドに2番目のインデックスを作成することは冗長です。すべてのクエリでインデックスが使用されるようにするには、名前にインデックスを追加するだけで済みます。

したがって、テーブルのインデックスの数は、テーブルのフィールドの数より大きくてはならないようです。

それは正しいですか?そうでない場合は、なぜですか?

4

1 に答える 1

2

A、B、C の 3 つのインデックスに値する列を持つテーブル T を考えてみましょう。

  1. プライマリ インデックスは、T(A、B、C) にある可能性があります。
  2. A と C が定義されているクエリが存在する可能性があるため、それらのインデックスは T(A, C) です。
  3. B が定義されているクエリが存在する場合があります。T(B) はインデックスです。
  4. C が定義されているクエリが存在する場合があります。T(C) はインデックスです。

列よりも多くのインデックスのように見えます。

テーブル内の列数が多いほど、役立つ可能性のあるインデックスを見つけやすくなり、インデックス数が列数よりも多くなる可能性があります。

于 2012-07-18T01:46:12.953 に答える