搜索树
二叉搜索树
二叉搜索树的特点是: 每个节点的左儿子小于父节点, 父节点又小于右儿子....如查询语句 select * from T where K = 5, 即根据普通索引进行查询, 则需要先搜索 K 索引树, 得到 ID 值 500, 再到 ID 索引树搜索. 这个过程称之为回表....在这个查询中, 索引 k 覆盖了我们需要查询的字段, 我们称之为 覆盖索引.
由于覆盖索引可以减少树的搜索次数,显著提升查询性能,所以使用覆盖索引是一个常用的性能优化手段。...在 MySQL 5.6 之前, 只能从 ID3 开始一个一个的回表, 到主键索引上找出数据行, 再比对字段值....而在 MySQL 5.6 引入了索引下推优化, 即在索引遍历过程中, 对索引中包含的字段先做判断, 先过滤到不符合条件的记录, 避免回表:
无索引下推执行流程:
image.png
有索引下推执行流程