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

参数

经验分享 程序员 微信小程序 职场和发展