2017-12-06 14 views

答えて

0

クラスタ化インデックスは、インデックス値の順序位置にデータを物理的に格納するようSQLに指示します。したがって、同じクラスター化された値を持つ5つの行がある場合、それらはすべて互いに隣り合って(ヒープ表)保管されます。 SQLは、一致する値を見つけるためにテーブル全体をスキャンする必要はありません。軽微なINSERTパフォーマンスは失われますが、クラスタ化インデックスフィールドを使用する特定のSELECTクエリは劇的に高速になります。

このクエリを実行した場合

SELECT * FROM MyTable WHERE ClusteredIndexField = 'A' 

SQLは、クラスタ化されたフィールドに「A」の値を持つすべての行が一緒にすべてあることを知っています。最初に一致する行が見つかると、それは次の行を反復します。 SQLは、条件が一致する可能性のある行がなくなったことを知っているので、SQLはそれ以上検索しないことを確実に知ることができます。

http://www.sqlpassion.at/archive/2016/03/29/clustered-indexes-advantages-disadvantages/

+0

私は条件を持つクエリ 'SELECT'を'使用する場合、名前は=「ヌテッラ」 '検索が効率的になりますWHEREうーん...、私のテーブル' Products'に単に私が名前の列にインデックスを作成するように、 ? – Asal

+0

はい、そうです。インデックスタイプの長所と短所、そしてインデックスが役立つかどうかは、深いテーマです。私はあなたがこれを読むことをお勧めします。しかし、一般的に、これは非常に良いユースケースのように思え、絶対に物事を良くします。クラスタ化インデックスはしばしば「銀色の弾丸」と呼ばれ、そのうちの1つだけを取得しますが、正しいトラックにいると思います。 – DanielG

関連する問題