Mysql 索引优化

Posted 1161588342

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mysql 索引优化相关的知识,希望对你有一定的参考价值。

单表  范围查询 后面的索引会失效

双表  左右连接建立索引互相使用

三表   用小结果集驱动大表结果, 先优化括号里面的SQL, 保证JOIN被驱动的表上ON字段有索引

 

索引失效(常见原因)

全职匹配

最佳左前法则  如果是复合索引,确保最左侧索引列一定要有  若无,全表扫描

索引列上不计算 不在索引列上做任何操作, 计算,函数,(自动or手动)类型转换,会导致索引失效还全表扫描 比如 left()

范围之后全失效 存储引擎不能使用索引中范围条件右边的列 索引失效 比如复合A, B C3列 若条件B > 20 则 C列失效

尽量使用覆盖索引,减少select *

在使用!= 或者 <>的时候无法使用索引,会导致全表扫描

is null, is not null也无法使用索引

like百分加右边 like 以通配符开头 ‘%sdf’, 索引失效,全表扫描

字符串不加单引号,索引失效

少用or, 用他来连接时索引失效

 

  

  

  

  

    

以上是关于Mysql 索引优化的主要内容,如果未能解决你的问题,请参考以下文章

mysql有几种索引类型?使用索引时都有那些地方要注意?sql优化原则是啥?

MYSQL优化 学习笔记

MySql知识体系总结(SQL优化篇)

MySQL 千万 级数据量根据(索引)优化 查询 速度

MySQL 千万 级数据量根据(索引)优化 查询 速度

从数据库代码和服务器对PHP网站Mysql做性能优化