• 什么是三星索引?


    三星索引其实是衡量一个索引是否达到最佳表现的三个维度

    第一星:where后面的等值谓词,可以匹配索引列的顺序:意义在于谓索匹配的越多,索引片越窄,最终扫描的数据行也是越小。

    第二星:order by的排序是否和索引的顺序一致:意义在于避免进行额外的排序,增加消耗。

    第三星:select的字段是否都为索引列:意义在于避免每一个索引行查询,都需要去聚簇索引进行一次随机IO查询。

    三星索引还有如下解释,其实是差不多的---

    三星索引,顾名思义,是满足了三个星级的索引。那么,这个三个星级是如何给定的呢?

    ★☆☆

    定义:如果与一个查询相关的索引行是相邻的,或者至少相距足够靠近的话,那这个索引就可以标记上一颗星。

    收益:它最小化了必须扫描的索引片的宽度。

    实现:把 WHERE 后的等值条件列作为索引最开头的列,如此,必须扫描的索引片宽度就会缩至最短。

    ★★☆

    定义:如果索引行的顺序与查询语句的需求一致,则索引可以标记上第二颗星。

    收益:它排除了排序操作。

    实现:将 ORDER BY 列加入到索引中,保持列的顺序

    ★★★

    定义:如果索引行中包含查询语句中的所有列,那么这个索引就可以标记上第三颗星。

    收益:这避免了访问表的操作(避免了回表操作),只访问索引就可以满足了。

    实现:将查询语句中剩余的列都加入到索引中。

  • 相关阅读:
    定位
    浮动
    标准文档流
    盒模型
    CSS继承性和层叠性
    微信公众平台-信息的获取
    信息系统项目管理师-整体介绍
    Dijkstra算法 c语言实现
    windows下c语言获取程序当前的执行目录,读文件的代码片
    网络流问题,及其代码
  • 原文地址:https://www.cnblogs.com/cy0628/p/16359315.html
Copyright © 2020-2023  润新知