天天看點

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