mysql索引

Posted weixin_46401390

tags:

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

一 ,索引失效场景

mysql中可通过explain+sql语句来查询sql的执行计划。
可以使用explain命令加在要分析的sql语句前面,在执行结果中查看key这一列的值,如果为NULL,说明没有使用索引。
explain命令的详细用法

索引失效场景如下:
1、like 以%开头,索引无效;当like前缀没有%,后缀有%时,索引有效
2、or语句前后没有同时使用索引。当or左右查询字段只有一个是索引,该索引失效,只有当or左右查询字段均为索引时,才会生效
3、组合索引时,索引列从左往右包含则索引生效,否则失效。

4、数据类型出现隐式转化。如varchar不加单引号的话可能会自动转换为int型,使索引无效,产生全表扫描。
5、在索引字段上使用not,<>,!=。不等于操作符是永远不会用到索引的,因此对它的处理只会产生全表扫描。 优化方法: key<>0 改为 key>0 or key<0。
6、对索引字段进行计算操作、字段上使用函数。(索引为 emp(ename,empno,sal))会索引失效
7、当全表扫描速度比索引速度快时,mysql会使用全表扫描,此时索引失效。

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

mysql索引

面试官:MySQL 数据库查询慢,除了索引问题还可能是什么原因?

Mysql 索引-2

MySQL索引类型

MYSQL索引总结

mysql索引总结----mysql 索引类型以及创建