2010-11-28 11 views
2
  1. インデックスカバーリング(a.k.a. Covering Index)の技術は何ですか?
  2. 全体的なパフォーマンスを考慮すると、そのメリットとデメリットは何ですか?
+0

MySqlまたはSQLサーバーですか? –

+0

MySQL **および** SQL Server?答えは異なる可能性があります... –

答えて

5

カバリングインデックスを作成する理由は、クエリのwhere句で出力されるか、またはwhere句で参照される必要があるすべての列が、インデックスデータ構造内に存在することですインデックスキーの一部またはincluded列)。

これは、データベースエンジンがクエリのニーズを満たすために追加のデータベースデータページを取得する必要がないことを意味します。一言で言えば、これは、の大部分がの場合、クエリが高速になることを意味します。

SQL Server Optimizationには、SQL Serverのカバーインデックスの例の説明があります。あなたが発言権を組み込むために持っていた欠点を考えるとき、それは興味深い質問は、我々は非常に広いテーブルを持っていたと仮定して、クエリのカバーインデックスを作成するために、だ今How to exploit MySQL index optimizations

:ここ

は、MySQL上の素敵な議論であります20個の大きなデータ型の列を使用すると、インデックスがすぐにかなり大きくなる可能性があります。その後、索引保守と表の挿入/更新のコストに関連してパフォーマンスの向上を検討する必要があります。その1つは、(ワークロード・パターン、使用されるデータなどに依存して)ケースに依存します。

2

ジョンズの回答に加えて:

利点:行へのアクセスが必要とされていないとして、クエリをカバーフィールドから答えることができるならばより高速なアクセス速度。

短所:インデックス内のより多くのデータを更新する必要があるため、更新速度が遅くなります。

関連する問題