0
点赞
收藏
分享

微信扫一扫

Mysql索引,最左原则,执行计划

生活记录馆 2022-03-25 阅读 49
mysql

Mysql可以为表创建索引,创建索引可以提高mysql查询效率,我们一般在常用查询列创建索引,如:where、 order by、group by如果有索引都会使用到。

创建索引不一定能提高mysql的查询效率。

如果数据表的数据特别少,是没有必要创建索引的,数据量大的情况下创建索对查询才有效果,比如数量几万或几十万的时候,多表联查,性能会得到明细的提升。

 索引的缺点:insert update delete会慢,因为他们维护索引。

 

创建索引

索引类型:主键索引(主键id)、唯一索引(手机号,账号),组合索引,全文索引(基本用不到)

 

 

Index_name:是单例索引,index_name_price就是组合索引,也叫聚合索引,它包含了2列name和price创建了一个组合索引

最左前缀原则

组合索引的使用要符合最左前缀原则,否则索引失效,比如:我们

select * from where name=’zhangsan’ and price>100,会使用到索引,而:

select * from where price>100 and name=’zhangsan’ 则否索引失效,用不到索引。

Index(a,b,c),组合索引的常见是有顺序的,where条件必须a=’’ and b=’’ and c=’’才能用全索引,否的话就会造成索引失效,或者用不全索引。

select * from where a=’’ and c=’’ ,这样只会用到部分索引,不能完全使用到这个组合索引。

只要where条件不是以a=’’开始,就不会用到索引。

执行计划

什么是执行计划呢?如何使用执行计划呢?

执行计划会能分析复杂SQL的执行过程,有哪些索引可以使用?是否用到了索引?是否进行了全表扫描,我可以通过explain关键查看mysql的执行计划。

 

 

 附图:执行计划列名说明

上图转自:MySQL EXPLAIN详解 - 简书

 

举报

相关推荐

0 条评论