0

SQL では、何百万ものレコード (Transactios テーブルの CustomerID など) を検索するときはいつでも、CustomerID のインデックスを追加する必要があることは明らかです。

フィールドを基準として使用して内部結合または外部結合を行う必要がある場合に、フィールドにインデックスを追加したい別の状況はありますか? t1.customerID = t2.customerID の内部結合など。次に、両方のテーブルの customerID にインデックスがない場合は、2 つのテーブルを順番にループする必要があるため、O(n^2) を調べています。両方のテーブルの customerID にインデックスがある場合、O( (log n) ^ 2 ) になり、はるかに高速になります。

テーブル内のフィールドにインデックスを追加したい状況は他にありますか?

テーブルに結合された 2 つのフィールドにインデックスを追加するのはどうですか。つまり、2 つのフィールドを合わせて 1 つのインデックスですか?

4

2 に答える 2

2

ORDER BYand節で頻繁に使用されるフィールドWHEREも、索引付けの候補として適しています。

于 2010-04-25T10:42:16.840 に答える
0

常に 2 つのフィールドを選択する場合、または 1 つのフィールドを選択して別のフィールドを並べ替える場合は、2 つのフィールドのインデックスを検討することをお勧めします。

最初の列のカーディナリティが小さすぎてインデックスが歪む可能性がある場合は、複合インデックスに 2 番目のフィールドを含めることもできます。これは、可能な値が限られている (たとえば 3 つまたは 4 つ) ステータス フィールドの場合によくあるため、さまざまな値を持つフィールド (たとえば、通常は並べ替える日時フィールド) を含めると、よりパフォーマンスの高いインデックスが生成されます。

于 2010-04-25T10:48:42.410 に答える