a) 数据库表设计优化,建表时加入冗余字段,减少关联查询
b) 尽量使用PrepareStatement,减少编译次数,提高效率(SQL语句也需要先编译再执行)
c) Connection设置为readOnly,表示启动只读模式,启动数据库的优化策略。
d) 在jdbc中采用批量
e) 索引优化,对常查询的字段建立索引
f) 尽量减少嵌套查询(select(select(select)))
g) 尽量减少group和having子句的应用
h) 利用视图
i) 采用数据库机制进行分页查询,提高性能,尽量使用物理分页(和物理分页相对的还有逻辑分页)
j) 调整连接池中的连接数量和等待时间,调整数据库本身对Connection数量的支持
i. Mysql默认为100个Connection(my.ini)
ii. Oracle 10G默认是150个Connection(F:\oracle\product\10.2.0\admin\bjpowernode\pfile\ init.ora)
k) 引入连接池(最小连接数、最大连接数、最大等待时间、最大空闲时间等)
l) 配置项为:
<!-- 批量更新配置(应用在insert/update/delete) -->
<prop key="hibernate.jdbc.batch_size">30</prop>
<!-- 批量抓取参数的配置(应用在select) -->
<prop key="hibernate.jdbc.fetch_size">50</prop>