顾名思义,就是覆盖了索引,即查询的索引覆盖到了查询的结果。
例如表T中ID是主键,是一个普通索引。
如果执行的语句是 select ID from T where k between 3 and 5,这时只需要查 ID 的值,而 ID 的值已经在 k 索引树上了,因此可以直接提供查询结果,不需要回表。也就是说,在这个查询里面,索引 k 已经“覆盖了”我们的查询需求,我们称为覆盖索引。
由于覆盖索引可以减少树的搜索次数,显著提升查询性能,所以使用覆盖索引是一个常用的性能优化手段。
例如建一个联合索引,手机号+姓名,此时如果想根据手机号查姓名,则不需要回表,直接可以查询。
此文章为4月Day07学习笔记,内容来源于极客时间《gk.link/a/122bT》