1墩莫、查詢優(yōu)化應盡量避免全表掃描,考慮在where或order by條件字段上建立索引
~ 避免全表掃描的一些點:
1逞敷,where子句避免使用 != 或 <>;
2狂秦,where 子句避免中對字段進行 null 值判斷,可以考慮字段非空設置兰粉,有默認值(0)
例:select id from tb where num is null
優(yōu):select id from t where num = 0
3故痊,where 子句中應盡量避免使用 or 來連接條件
例:select id from tb where num=10 or num=20
優(yōu):select id from tb where num=10 union all select id from t where num=20
4,模糊查詢盡量前邊不使用%
例:select id from tb where name like '%abc%'
優(yōu):考慮全文搜索
5玖姑,慎用 in 和 not in愕秫,查詢若連續(xù)考慮between ... and ...
例:select id from tb where num in(1,2,3)
優(yōu):select id from tb where num between 1 and 3
6,where 子句中避免盡量對字段進行表達式操作
例:select id from tb where num/2=100
優(yōu):select id from tb where num=100*2
7焰络,where子句中避免盡量對字段進行函數操作
例:select id from tb where substring(name,1,3)='abc'
優(yōu):select id from tb where name like 'abc%'
例:select id from tb where datediff(day,createdate,'2005-11-30')=0--'2005-11-30'生成的id
優(yōu):select id from tb where createdate>='2005-11-30' and createdate<'2005-12-1'
待續(xù)戴甩。。闪彼。