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
参数
下一篇:
TiDB和ClickHouse的对比分析