三星索引其实是衡量一个索引是否达到最佳表现的三个维度,对于一个查询而言,一个三星索引、可能是最好的索引
使用三星索引,一次查询通常只需要进行一次磁盘随机读以及一次窄索引片的扫描,因此其响应时间通常比使用一个普通索引的响应时间少几个数量级
一般我们认为第三颗星最重要,第一种和第二种差不多,要根据业务情况调整这两颗星的优先度
-
第一颗星:where后面匹配条件,可以匹配联合索引的多个列:意义在于索引列匹配字段越多,索引片越窄,最终扫描的数据行越小
-
第二颗星:order by的排序是否和索引的顺序一致:意义在于避免进行额外的排序,增加消耗
-
第三颗星:使用了覆盖索引 ,意义在于避免每一个索引行查询,都需要去聚簇索引进行一次随机IO查询