天天看点

Mysql中哪些sql 不会走索引

1. 索引列参与了计算

    SELECT `sname` FROM `stu` WHERE `age`+10=30;

2. 索引使用了函数运算

    SELECT `sname` FROM `stu` WHERE LEFT(`date`,4) <1990;

3. like

    SELECT * FROM `houdunwang` WHERE `uname` LIKE'后盾%' -- 走索引

    SELECT * FROM `houdunwang` WHERE `uname` LIKE "%后盾%" -- 不走索引

4. 字符串与数字比较不使用索引

    SELECT * FROM `a` WHERE `a`=1

5. 如果条件中有or,即使其中有条件带索引也不会使用。换言之,就是要求使用的所有字段,都必须建立索引, 我们建议大家尽量避免使用or 关键字

    select * from dept where dname='xxx' or loc='xx' or deptno=45

注:如果mysql估计使用全表扫描要比使用索引快,则不使用索引

版权声明:本文为CSDN博主「weixin_34082177」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/weixin_34082177/article/details/91894381