导读:本文主要介绍mysql查询不走索引的原因及解决方法 。
1. mysql查询不走索引的原因:
(1)数据量太大 , 索引已经失去了优势 。
(2)查询条件中使用了不支持索引的函数,例如:like '%abc%',substring(),concat(),left(),right()等 。
(3)在where子句中使用了or或者not连接,此时mysql不会使用索引 。
(4)表中存在大量的null值,当查询条件中含有null值,mysql也不会使用索引 。
(5)索引列的数据类型不匹配 , 例如:索引列是int类型,查询条件中使用char类型 , mysql不会使用索引 。
2. 解决方法:
(1)避免使用不支持索引的函数,尽量使用=,>,<,>=,<=等操作符 。
(2)尽量避免使用or和not连接,改用and连接 。
(3)调整表结构,将null值替换为非null值,或者将null值放到一个独立的列上 。
(4)检查索引列的数据类型,并与查询条件中的数据类型保持一致 。
【mysql 索引列不能有函数 mysql有索引不走】总结:mysql查询不走索引的原因主要有数据量太大,查询条件中使用了不支持索引的函数,where子句中使用了or或者not连接,表中存在大量的null值,以及索引列的数据类型不匹配等 。解决的方法是避免使用不支持索引的函数,尽量使用and连接,替换null值,并检查索引列的数据类型,以保证查询条件中的数据类型与索引列的数据类型保持一致 。
推荐阅读
- 如何在黏土服务器上使用材质包? 黏土服务器怎么加材质包
- mysql 添加数据库 添加mysql服务失败
- MySQL安装失败原因 mysql安装失败
- mysql各种锁图解
- mysql8java
- mysql定时备份到远程服务器 mysql远程登录备份
- mysql如何使用循环 mysql循环分页修改
- mysql设置权限语句 mysql赋予权限设置