有哪些数据库优化方面的经验?
- 用 PreparedStatement, 一般来说比 Statement 性能高:一条sql语句发给服务器去执行,涉及步骤:语法检查、语义分析、 编译、缓存。
- 有外键约束会影响插入和删除性能,如果程序能够保证数据的完整性,那在设计数据库时就可以去掉外键。
- 表中允许适当冗余,譬如,主题帖的回复数量和最后回复时间等。
- UNION ALL 要比 UNION 快很多,所以,如果可以确认合并的两个结果集中不包含重复数据且不需要排序时的话,那么就使用 UNION ALL。
UNION 和 UNION ALL 关键字都是将两个结果集合并为一个,但这两者从使用和效率上来说都有所不同。
1) 对重复结果的处理:UNION 在进行表链接后会筛选掉重复的记录,Union All 不会去除重复记录。
2) 对排序的处理:Union 将会按照字段的顺序进行排序;UNION ALL 只是简单的将两个结果合并后就返回。