索引的好处
- 索引大大减少了服务器需要扫描的数据量
- 索引可以帮助服务器避免排序和临时表
- 索引和将随机IO变为顺序IO
衡量索引是否合适的三个指标
- 索引将相关记录放在一起
- 索引中的数据顺序和查找中数据的排列顺序一致
- 索引中的列包含了查询中需要的全部列
- 索引的选择性指标
- 不重复的索引值和总记录数的比值(T),范围从1/T 到1,索引的选择性越高这查询效率越高,因为选择性越高可以让mysql 过滤更多的行。
使用聚集索引的好处
- 可以把相关的数据保存在一起
- 数据访问更快。聚集索引将数据和索引放在同一个B-Tree 中,因此从聚集索引中获取数据通常比非聚集索引更快。
- 使用覆盖索引扫描的查询可以直接使用叶节点中的主键值。
索引效率(explain type 列查看)
- consts 单表中最多只有一个匹配行(主键或者唯一索引),在优化阶段即可读取到数据。
- ref 指的是使用普通的索引(normal index)。
- range 对索引进行范围检索。
- index 索引物理文件全扫描,速度非常慢,这个index级别比range 还低,与全表扫描是小巫见大巫。
SQL 优化方式
- 延迟关联查询优化分页取数据
explain select * from
ecs_order_goodslimit 2000001,20 ;
explain select * from
ecs_order_goods, (select rec_id from
ecs_order_goodslimit 2000001,20 ) b where ecs_order_goods.rec_id = b.rec_id;
- 延迟关联查询优化分页取数据
mysql 索引笔记
最新推荐文章于 2024-09-20 21:26:51 发布