一. 不走索引的情況
使用 != 和 <> 不等於符號查詢
使用 not in、 not exists 查詢
使用like字尾查詢,如』%string』
在建立索引和沒有索引的字段上使用or,會導致查詢不走索引
使用》、 <、 <=、 >= 符號,可能不走索引,這個要看優化器的判斷
字串型別字段使用數字進行比較,不走索引,如 (varchar(200) name) name=123
在索引欄位上計算
在索引字段行使用函式操作
二. 優化
or語句使用union替代
字段盡量使用短型別,如年齡int使用 tinyint替代
通過explain分析低效的sql語句
where、orderby和join欄位建立索引
字段盡量避免使用 null值,設定預設值,如字串』』, 數字0
查詢字段避免使用*,只查詢需要資料
大表盡量避免多表關聯
經常使用大資料字段垂直分表,如text儲存文章
字段適量冗餘
大表可以進行分表, 垂直分表和水平分表
Mysql中哪些Sql不走索引
select sname from stu where age 10 30 不會使用索引,因為所有索引列參與了計算 select sname from stu where left date 4 1990 不會使用索引,因為使用了函式運算,原理與上面相同 select from houdunwang...
mysql不走索引總結
在mysql查詢語句中,總會發現明明已經建立了查詢字段索引,可是卻沒有用到,這是因為在mysql中有些查詢語句是用不到索引的,總結如下,以供大家分享。1.like語句 2.列型別為字串型別,查詢時沒有用單引號引起來 3.在where查詢語句中使用表示式 4.在where查詢語句中對字段進行null值...
mysql 索引優化,索引建立原則和不走索引的原因
第一 選擇唯一性索引 唯一性索引的值是唯一的,可以更快捷的通過該索引來確定某條記錄.2.索引的列為where 後面經常作為條件的字段建立索引 如果某個字段經常作為查詢條件,而且又有較少的重複列或者是唯一咧可以考慮作為索隱列 經常作為查詢條件的列作為索引會提高速度 3.位經常需要進行排序.分組和聯合操...