81
社区成员
今天我们继续推荐文章,到了这个阶段,文章需要反复阅读了,最好记点笔记啥的。
index Lookup Join(ILJ) 在 BNJ 基础上进行了改进,通过索引减少数据读取的代价。
TiDB 源码阅读系列文章(十一)Index Lookup Join | PingCAP
介绍了统计信息基本概念、TiDB 的统计信息收集/更新机制以及如何用统计信息来估计算子代价。
TiDB 源码阅读系列文章(十二)统计信息(上) | PingCAP
索引分为单列索引和多列索引(组合索引),筛选条件也往往不会是简单的一个等值条件,可能是非常复杂的条件组合。TiDB 是如何分析这些复杂条件,来得到这些条件在对应的索引上的逻辑区间范围(range),就是本文要介绍的内容。
TiDB 源码阅读系列文章(十三)索引范围计算简介 | PingCAP
介绍直方图和 Count-Min(CM) Sketch 的数据结构,然后介绍 TiDB 是如何实现统计信息的查询、收集以及更新的。
TiDB 源码阅读系列文章(十四)统计信息(下) | PingCAP
Sort Merge Join (SMJ),简单说来就是将 Join 的两个表,首先根据连接属性进行排序,然后进行一次扫描归并, 进而就可以得出最后的结果。这个算法最大的消耗在于对内外表数据进行排序,而当连接列为索引列时,我们可以利用索引的有序性避免排序带来的消耗, 所以通常在查询优化器中,连接列为索引列的情况下可以考虑选择使用 SMJ。