在mysql查詢語句中,總會發現明明已經建立了查詢字段索引,可是卻沒有用到,這是因為在mysql中有些查詢語句是用不到索引的,總結如下,以供大家分享。
1.like語句
2.列型別為字串型別,查詢時沒有用單引號引起來
3.在where查詢語句中使用表示式
4.在where查詢語句中對字段進行null值判斷
5.在where查詢中使用了or關鍵字, myisam錶能用到索引, innodb不行;(用union替換or,可以使用索引)
6.全表掃瞄快於索引掃瞄(資料量小時)
查詢某張表中已經建立的索引:show index from tablename
mysql哪些情況不走索引
在mysql中,並不是你建立了索引,並且你在sql中使用到了該列,mysql就肯定會使用到那些索引的,有一些情況很可能在你不知不覺中,你就 成功的避開了 mysql的所有索引。現假設有t stu表,age,sname上建立了索引 如果where條件中age列中使用了計算,則不會使用該索引 selec...
Mysql中哪些Sql不走索引
select sname from stu where age 10 30 不會使用索引,因為所有索引列參與了計算 select sname from stu where left date 4 1990 不會使用索引,因為使用了函式運算,原理與上面相同 select from houdunwang...
MySQL中in到底走不走索引?
mysql中explain關鍵字可以模擬mysql優化器執行sql語句,是乙個可以很好的分析sql語句或表結構的效能瓶頸。explain的使用方法 explain sql語句,下面我們先來執行下explain語句 explain select from user where created time...