mysql 索引笔记

来源:互联网 发布:查看矢量图的软件 编辑:程序博客网 时间:2024/06/15 23:51
  1. 索引的好处

    • 索引大大减少了服务器需要扫描的数据量
    • 索引可以帮助服务器避免排序和临时表
    • 索引和将随机IO变为顺序IO
  2. 衡量索引是否合适的三个指标

    • 索引将相关记录放在一起
    • 索引中的数据顺序和查找中数据的排列顺序一致
    • 索引中的列包含了查询中需要的全部列
  3. 索引的选择性指标
    • 不重复的索引值和总记录数的比值(T),范围从1/T 到1,索引的选择性越高这查询效率越高,因为选择性越高可以让mysql 过滤更多的行。
  4. 使用聚集索引的好处

    • 可以把相关的数据保存在一起
    • 数据访问更快。聚集索引将数据和索引放在同一个B-Tree 中,因此从聚集索引中获取数据通常比非聚集索引更快。
    • 使用覆盖索引扫描的查询可以直接使用叶节点中的主键值。
  5. 索引效率(explain type 列查看)

    • consts 单表中最多只有一个匹配行(主键或者唯一索引),在优化阶段即可读取到数据。
    • ref 指的是使用普通的索引(normal index)。
    • range 对索引进行范围检索。
    • index 索引物理文件全扫描,速度非常慢,这个index级别比range 还低,与全表扫描是小巫见大巫。
  6. SQL 优化方式

    • 延迟关联查询优化分页取数据
      explain select * fromecs_order_goodslimit 2000001,20 ;
      explain select * fromecs_order_goods, (select rec_id fromecs_order_goodslimit 2000001,20 ) b where ecs_order_goods.rec_id = b.rec_id;
原创粉丝点击