2

私はこれまでインデックスをカバーすることを聞いたことがなく、ただそれらに出くわしました。私は彼らについてこのページを読んでいました、そしてそれは言います。

「カバーするインデックスはデータの取得を劇的にスピードアップできますが、キーが追加されるためデータの挿入と更新が遅くなるため、それ自体が大きくなる可能性があります。このようなインデックスサイズを減らすために、一部のシステムではキー以外のフィールドをインデックスに含めることができます。 -キーフィールド自体はインデックスの順序付けの一部ではなく、リーフレベルでのみ含まれるため、全体的なインデックスサイズを小さくしてカバーするインデックスを作成できます。」

だから私の質問は、あなたのシステムが非キーフィールドをインデックスに含めることを許可しているかどうかをどうやって知るのですか?

4

1 に答える 1

3

MySQLは(現在)非キー列をサポートしていません。その他のDMBSについては、リファレンスマニュアルを確認する必要があります。

同様の質問がここで行われ、回答されています。ただし、カバーリングインデックスを使用することで得られるパフォーマンスの向上は、一般に、多数の行を返す非選択クエリの方が大きいため、インデックス自体に余分な列を含めるだけでパフォーマンスが向上するという解決策は考えられません。ただし、私が考えていないシナリオがあり、あなたのシナリオもその1つである可能性があります。そのため、パフォーマンスの向上、テスト、実行プラン、およびIO統計を探すときは、私の予想よりもはるかに多くのことがわかります。

于 2012-12-31T12:08:41.420 に答える