数据库优化:
1)适当的冗余数据:经常被关联的字段可以做适当的冗余
2)适当建立索引:经常要被作为查询条件被查询,或者经常被查询的字段,作为表关联的字段要做索引
3)对表水平切分:一般是数据量很大的表。比如交易表。可以按每个季度将一个表分成4个表
4)对表垂直切分:有的表数据不多,但是有的字段数据很大。比如企业账户信息表。可以将企业账户的印章字段分开来,与原表作一一对应
5)对于文件、图片等大数据用文件系统存储,尽量不要使用数据库
6)对于大批量的数据,可以通过批处理来完成,不要在应用程序里处理。
7)为数据库做集群
SQL语句优化:
1)统一的SQL语句写法,因为统一个SQL语句不通的写法,哪怕是大小写不一样,也会声称不通的执行计划
2)尽量简单的SQL语句,一是阅读方便;二是复杂的SQL的语句容易产生错误的执行计划,而且执行计划重用性不高。
3)使用临时表存放中间结果。
4)尽量使用索引查询:(那些破坏索引使用的情况)
5)使用UNION ALL 代替UNION 因为UNIO会对结果进行排序过滤去除重复数据,效率低
6)只返回需要的字段
7)对于业务复杂的SQL语句或者涉及到安全操作的SQL语句可以通过调用存储过程来实现
8)使用连接或者EXIST来代替IN/NOT IN
9)尽量少用NULL判断
参考:http://www.cnblogs.com/ATree/archive/2011/02/13/sql_optimize_1.html