测试指标:
. 每次都创建connection 不使用transaction
. 使用connection pool,不使用transaction
.使用connection pool 使用transaction
主键选择中:
1. 最原始jDBC操作,没有连接池、事务等
2. 使用连接池
3. 使用连接池+事务
4. 使用proxool+连接池
JDBC JDBC POOL JDBC POOL + TRANSACTION PROXOOL PROXOOL + CONNECTION POOL PROXOOOL+POOL+STATEMENT PROXOOL+POOL+STATEMENT+TRANSACTION
3709.4 201.5 196.9 371.8 306.2 231.3 228.1
结论:
1. 使用连接池性能非常高
2. statement没有什么用
3. 事务没有什么用。
4.proxool和自己写连接池性能差不多。自己的好一点。 201.5<>371.8 提高接近50%。
http://news.newhua.com/news1/program_other/2008/123/08123112858FCFK674B395H62JJK7F8.html
1.选择正确的jdbc驱动程序
2.Connention的优化 使用连接池来管理Connection对象
3.Statement的优化 使用批量更新等
4.Result的优化 正确的从数据库中get数据等
1. 使用连接池:
测试使用了proxool,效果不明显,不是一个数量级别的提高。(在单线程中)
2. 使用setAutoCommit(false)
能极大提高性能,特别是大数据量的一次性操作
3. 事务隔离级别
较难通用使用
4. 使用batch
测试发现效果不明显。没有一个数量及提高。
基本上来看,在单线程中,开启了事务性能最高。
在多线程中,使用连接池性能最高。
-------------------------
小结:
1. 在查询中,使用connectionpool性能最高
2. 在insert等使用transaction性能最高。