查询条件不要有计算,如colA/5=colB,
查询条件操作符两边的字段使用相同的数据类型,不要让数据库默默的转换数据类型消耗资源与时间;
查询条件中,尽量不要使用函数
自定义函数也尽量少用
union尽量少用,union后的结果没有索引
查询条件中,尽量不写“不等于”判断
GroupBy、OrderBy、Distinct尽量使用索引字段
频繁的查询条件最好建立索引
查询条件关联字段最好建立索引
尽量不用子查询
如果字段会出现在查询条件中,这样的字段最好给出不是null的默认值
一个表不要太多字段
表中较大字段且不常读的字段,建议拆分到字表
给表字段长度选择适合的大小,既满足需求,又不浪费存储和提高效率
-------MySQL优化
1、如果是MySQL,使用合理的数据库引擎,innodb支持事务,myisam速度慢,但是数据变化时是整表锁
2、如果使用MyBatis+MySQL,进行批量数据insert和delete,
一次插入批量插入记录时,可以扩展一条insert写入多条记录,但是一次写入数也不能太多;
删除也要分批次删除,比如delete from tableA where col=0 limit 1000;
如果是大量数据的写入和删除,要分批操作,比如一次1000条,每批次操作提交之后,要休息一段时间,比如5秒钟,让数据库喘口气。