原则
- 对查询进行优化,应尽量避免全表扫描,首先应考虑在
where
及order by
涉及的列上建立索引。 - 应尽量避秒在
where
子句中对字段进行null
值判断,否则将导致引擎放弃使用索引而进行全表扫描,如:select id form t where num is null
可以在num
上设置默认值0
,确保表中num
列没有null
值,然后这样查询:select id from t where num=0
。 - 应尽量避免在where子句中使用
!=
或<>
操作符,否责引擎将放弃使用索引而进行全表扫描。 - 应尽量避免在
where
子句中使用or
来连接条件,否则将导致引擎放弃使用索引而进行全表扫描,如:select id from t where num=10 or num=20
可以这样查询:select id from t where num=10 union all select id from t where num=20