一,基本查询语句
1)不要使用 select * from table ,用具体的字段列表代替“*”,不要返回用不到的任何字段
二,where查询语句
1)应尽量避免在 where 子句中使用!=或<>操作符,否则将引擎放弃使用索引而进行全表扫描。
2)应尽量避免在 where 子句中使用 or 来连接条件,否则将导致引擎放弃使用索引而进行全表扫描
3)应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描
4)在where 查询时 in 和 not in 也要慎用,否则会导致全表扫描 可以使用 between and
例:
- select id from table where num in(1,2,3)
5)在where 查询时尽量避免 select id from table where name like '%abc%' 这样的 查询语句也会 进行全部扫描
6)尽量避免 where 子句中对字段进行表达式操作,这将导致引擎放弃使用索引而进行全表扫描
例:
- select id from table where num/2=10
改 :select id from t where num=10*2
7)where子句中对字段进行函数操作,这将导致引擎放弃使用索引而进行全表扫描
8)不要在 where 子句中的“=”左边进行函数、算术运算或其他表达式运算,否则系统将可能无法正确使用索引
9)应尽量避免在where子句中对字段进行函数操作
10)不要写一些没有意义的查询,如需要生成一个空表结构
11)尽量使用索引 这样可以 缩短查询速度 不会 进行全表扫描