このスライドでは、分散型NewSQLデータベース「TiDB」ならではの索引設計について解説します。TiDBクラスタで索引はどのようなKVペアに変換して、ストレージに格納しているか、いくつかの索引の使用方法、索引の使用に当たる制限事項やメンテナンス・テクニックを紹介します。TiDB独自の索引実現方法や、TiDBをより生かせる索引の使用方法にご興味がある方は是非ご覧ください。
トピック
・索引のKVマッピング・ルール
・TiDBでサポートしている索引の使用方法
・索引に関する制限事項
・メンテナンス・テクニック
アーカイブ動画
https://youtu.be/dZxvg1pV0xw
QUIZ(資料P34)の解答: AとD
(解説)
・A についてはオプティマイザがWhere 条件を並び替えして、where a = 100 and b < 99 and c = 4とします。そこで、aがマッピングできて、bの条件もマッピングできます。ただ、b に関する検索条件は=ではないので、次のcに関する検索条件は索引使えないですが、aとbの検索条件に使えますので、Aは正解となります。
・BについてはオプティマイザがWhere 条件を並び替えしても、where 条件にaに関する条件がないため、leftmost prefix matching できません。したがって、Bは誤りです。
・Cについては、Covering Indexの使い方に関する選択肢となりますが、idx_abc に入っていない列dがselect の対象列になっているため、表へ参照する必要がありますので、Covering Index としては使えません。なので、Cは誤りです。
・Dについては、select の対象列 a,b が全て複合インデックス idx_abc に入っておりますので、Covering Index としては使えます。なので、Dは正しいです。