<b>JDBC优化战略总结</b>[Java编程]
本文“<b>JDBC优化战略总结</b>[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
相比Hibernate、iBatis、DBUtils等,理论上JDBC的性能都超越它们.JDBC供应更底层更精密的数据拜候战略,这是Hibernate等框架所不具有的.
在一些高性能的数据操作中,越高级的框架越不合适利用.这里是我在开辟中对JDBC利用历程中一些优化经验总结.
1、挑选纯Java的JDBC驱动.
2、利用衔接池--利用一个“池”来管理JDBC衔接,并尽心调试池配置的参数,目前可用的数据库衔接池很多很多.
若何配置符合的参数呢,需求的是测试,而不是感受.
3、重用Connection--最大限度利用每个数据库衔接,得到了就不要简单“丢弃”.
有时刻在一个历程中,会多次操作数据库,而仅仅需求一个衔接就够了,没必用一次就获得一个衔接,用完后关闭大概入池.这样会增添“池”管理的本钱,千万别认为你用了“池”便可以随便申请和偿还衔接,都是有代价的.假如是一个宏大循环块中操作数据库,更应当注意此问题!
4、重用Statement--关于一些预定义SQL,设置为静态常量,并尽大概重用预定义SQL产生的PreparedStatement对象.关于多次利用一种情势的SQL,利用预定义SQL可以获得更好的性能.
5、利用批处理SQL.
6、优化后果集ResultSet--查询时刻,返回的后果集有差别的范例,优先挑选只读后果集、不可转动的属性.
这里是很简单呈现问题的地方:
java.sql.ResultSet
static int CLOSE_CURSORS_AT_COMMIT
该常量指导调用 Connection.commit 办法时应当关闭 ResultSet 对象.
static int CONCUR_READ_ONLY
该常量指导不可以更新的 ResultSet 对象的并发情势.
static int CONCUR_UPDATABLE
该常量指导可以更新的 ResultSet 对象的并发情势.
static int FETCH_FORWARD
该常量指导将按正向(即从第一个到最后一个)处理后果集合的行.
static int FETCH_REVERSE
该常量指导将按反向(即从最后一个到第一个)处理后果集合的行处理.
static int FETCH_UNKNOWN
该常量指导后果集合的行的处理次序未知.
static int HOLD_CURSORS_OVER_COMMIT
该常量指导调用 Connection.commit 办法时不该关闭 ResultSet 对象.
static int TYPE_FORWARD_ONLY
该常量指导指针只能向前移动的 ResultSet 对象的范例.
static int TYPE_SCROLL_INSENSITIVE
该常量指导可转动但普通不受其他的更改影响的 ResultSet 对象的范例.
static int TYPE_SCROLL_SENSITIVE
该常量指导可转动并且普通受其他的更改影响的 ResultSet 对象的范例.
阐明下:
后果集分两种范例:只读和可更改,只读的话,更省内存,查询的后果集不能更改.假如后果集在查询后,更改了值又要保存,则利用可更改后果集.
后果集的游标也有两种范例:假如没必要让游标安闲转动,则挑选单方向移动的游标范例.
关于能否并发操作:假如不需求考虑线程安全,则挑选忽视并发的后果集范例,不然挑选并发安全的范例.
别的,还要掌握后果的大小,几近全部的数据库都有查询记录条数掌握的战略,可以海量数据举行分批处理,一次一批,这样不至于把系统搞死.
7、事物优化--假如数据库不支持事物,就不要写回滚代码,假如不考虑事物,就不要干事件的掌握.
8、安全优化--管理好你的Connection对象,在非常时刻能“入池”大概关闭.因此应当将Connection释放的代码写在非常处理的finally块中.
9、非常处理优化--不要简单吞噬SQLException,关于DAO、Service层次的数据拜候,普通在DAO中跑出非常,在 Service中处理非常.但DAO中也可以处理非常,并做转义抛出,不要随便抛出RuntimeExeption,因为这是JVM抛出的,不需求你可以去抛出,因为RuntimeException常常会招致系统挂起.
10、代码高层优化--在以上的底子上,优化封装你的数据拜候方法,尽大概让代码简便好保护,假如你还认为性能不行,那就该从整个系统角度考虑优化了,比方加上缓存服务器,集群、负载均衡、优化数据库服务器等等,以获得更好的系能.
出处:http://lavasoft.blog.51cto.com/62575/225828
以上是“<b>JDBC优化战略总结</b>[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |