1、尽量避免在where字句中对对字段进行表达式操作,这将导致搜索引擎放弃使用索引进行全盘扫描
例如
select id from t where num/2=100
应改为
select id from t where num=100*2
2、应尽量避免在where字句中对字段进行函数操作,这将导致引擎放弃使用索引而进行全盘扫描
例如
select id from t where substring(name,1,3)='abc'
应改为
select id from t where name like 'abc%'
3、不要在where字句的“=”左面进行函数,算数或者其他表达式运算,否则系统将可能无法正确使用索引
4、很多时候用exists代替in是一个很好的选择
例如
select num from a where num in(select num from b)
应改为
select num from a where exists(select 1 from b where num=a.num)
5、索引不是越多越好
6、尽量使用数字型字段
7、尽可能使用varchar可变长字符串代替char定长字符串,因为可变长字符串存储空间小,可以节省很多存储空间,其次对于查询来说,在一个相对较小的字段内搜索效率显然效率要高一些
8、尽量避免大事务操作,提高系统并发力
9、任何地方都不要使用select * from table ,用具体的字段列表代替 *,不要返回任何用不到的字段
10、尽量避免向客户端返回大数据量,若数据流过大,应该考虑相应的需求是否合理