TiDBでのインデックス設計
ウェビナー開催日:2022年12月22日
このビデオでは、分散型NewSQLデータベース「TiDB」ならではの索引設計について解説します。TiDBクラスタで索引はどのようなKVペアに変換して、ストレージに格納しているか、いくつかの索引の使用方法、索引の使用に当たる制限事項やメンテナンス・テクニックを紹介します。
トピック:
- 索引のKVマッピング・ルール
- TiDBでサポートしている索引の使用方法
- 索引に関する制限事項
- メンテナンス・テクニック
参考資料:TiDB でのインデックス設計
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は正しいです。