TiDB 源码阅读(五):索引

💡 原文中文,约10700字,阅读约需26分钟。
📝

内容提要

本文讨论了TiDB中的索引类型及其分类,包括按数据结构、存储内容、字段数量和唯一性分类。介绍了谓词下推的概念及其在查询优化中的重要性,通过提前过滤数据提升性能。同时讲解了天际线剪枝算法在多个索引中筛选最佳候选索引的方法,并提到基于成本的索引选择策略。

🎯

关键要点

  • TiDB中的索引可以按数据结构、存储内容、字段数量和唯一性进行分类。
  • B+树索引是最常用的索引类型,适合范围查询和稳定查询,但写入时需要维护平衡。
  • 谓词下推通过提前过滤数据来提升查询性能,减少后续操作的数据量。
  • 天际线剪枝算法用于从多个索引中筛选出最佳候选索引,避免不必要的代价估算。
  • 基于成本的索引选择策略在天际线剪枝后用于选出最佳访问路径,依赖于统计数据。

延伸问答

TiDB中的索引是如何分类的?

TiDB中的索引可以按数据结构、存储内容、字段数量和唯一性进行分类。

B+树索引的优缺点是什么?

B+树索引适合范围查询和稳定查询,查询效率高,但写入时需要维护平衡,开销较大。

什么是谓词下推,它有什么作用?

谓词下推是在查询处理中提前执行数据过滤,以减少后续操作的数据量,从而提升查询性能。

天际线剪枝算法是如何工作的?

天际线剪枝算法通过比较多个索引在不同维度上的表现,提前淘汰不具竞争力的索引,以减少代价估算的时间。

基于成本的索引选择策略是怎样的?

基于成本的索引选择策略在天际线剪枝后,通过统计数据选出最佳访问路径,以优化查询性能。

TiDB中索引的创建需要考虑哪些因素?

创建索引时需要根据实际查询需求进行权衡,避免过多索引导致INSERT、UPDATE、DELETE速度降低。

➡️

继续阅读