mysql之不走索引和sql優化

2021-10-25 10:30:08 字數 562 閱讀 3603

一. 不走索引的情況

使用 != 和 <> 不等於符號查詢

使用 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.位經常需要進行排序.分組和聯合操...