Mysql执行计划EXPLAIN详解


一、索引

1、哪些情况下需要创建索引

  • 主键自动建立索引(唯一+非空)
  • 频繁查询的字段
  • 查询中与其他表关联的字段
  • order by 排序的字段
  • group by 分组的字段

2、哪些情况不需要创建索引

  • 数据比较少的表
  • 经常增删改的表
  • 频繁更新的字段
  • 查询用不到的字段
  • 值比较少的字段,比如sex性别字段,只有男女两个值,不需要创建索引。

3、索引优化

  • 1、索引中范围条件右边的字段索引失效。
  • 2、左链接把索引建立在右表上,右链接把索引建立在左表上。
  • 3、多表查询时,尽量小表驱动大表。
  • 4、is null,is not null 的时候不走索引。
  • 5、尽量使用覆盖索引,少用select *。
  • 6、不在索引列上做计算、函数、or、类型转换,会导致索引失效。
  • 7、!= 或者<> 会导致索引失效。
  • 8、字符串索引列查询时不加单引号索引失效。
  • 9、like百分号加右边走索引,否则不走索引。

二、EXPLAIN详解

EXPLAIN用来查看sql语句是否走了索引,索引是否生效。

 EXPLAIN SELECT * FROM `tuser` where sfz = 111

在这里插入图片描述
参数

你可能感兴趣的:(研究,mysql,数据库,database)