Mysql 查詢優化

1、對查詢進行優化,應儘可能避免全表掃描,首先應考慮在 where 及 where and  order by 涉及的列上創建索引。索引字段添加原則是 經過某個字段來 查詢排序檢索數據庫時 應該加索引提升效率sql

 2、應儘可能避免在 where 子句中對字段進行 null 值判斷,不然將致使引擎放棄使用索引而進行全表掃描,如:  數據庫

select id from t where num is null

  能夠在num上設置默認值0,確保表中num列沒有null值,而後這樣查詢: 優化

select id from t where num=0

   這就是爲何在設計數據庫的時候 要把全部字段都設置默認值,而不是null的緣由
spa

3、應儘可能避免在 where 子句中使用!=<>操做符,不然將引擎放棄使用索引而進行全表掃描。
設計

 

4、應儘可能避免在 where 子句中使用 or 來鏈接條件,不然將致使引擎放棄使用索引而 進行全表掃描,如:code

  select id from t where num=10 or num=20排序

  能夠這樣查詢:索引

  select id from t where num=10io

  union allclass

  select id from t where num=20

 

5in 和 not in 也要慎用,不然會致使全表掃描,如:

  select id from t where num in(123)

  對於連續的數值,能用 between 就不要用 in 了:

  select id from t where num between 1 and 3

 

6、下面的查詢也將致使全表掃描:

  select id from t where name like '%abc%'

  若要提升效率,能夠考慮全文檢索。

 

7、應儘可能避免在 where 子句中對字段進行表達式操做,這將致使引擎放棄使用索引而進行全表掃描。如:

  select id from t where num/2=100

  應改成:

  select id from t where num=100*2

相關文章
相關標籤/搜索