SQL優化及索引失效彙總

SQL優化方案

  1. 注意具有索引列的查詢條件,避免造成索引失效(具體看如下的索引失效規則)
  2. 對於數據重複多的列,無需建立索引
  3. 索引並非越多越好,索引越多,對增刪改的速度就會越慢
  4. select 結果中,避免使用*符號,只返回有用的字段

使查詢放棄索引進行全表搜索的操作

  1. where語句中使用 != 和 <>
  2. 使用 null判斷,例如: where name is null / name is not null
  3. 索引列數據中包含 null,索引失效
  4. 在範圍條件語句後面的列索引都會失效;例如 where name = ‘Kellan’ and age > 10 and sex = ‘男’; 其中只有name字段的索引有效
  5. 模糊查詢中,將%放在字段前面,則索引失效;即 where name like ‘%Kellan’ . 與 where name like ‘Kellan%’。前者索引失效
  6. 避免直接對索引字段進行 計算與使用函數;都會使索引失效
  7. 避免使用 or條件判斷,索引會失效,進行全表搜索; 可以使用 union代替
  8. in 和 not in要慎用,否則會導致全表搜索; 如果是連續的值,可是使用between代替;或者可以先使用子查詢,降低搜索的數據量,再使用in 和 not in; 比如: select * from (子查詢) where id in (1,2,3);
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章