首页 新闻 会员 周边 捐助

关于批量操作数据性能问题

0
悬赏园豆:30 [已解决问题] 解决于 2015-12-16 20:36

hibernate:

 通过session的api、使用HQL、调用存储过程、jdbc来进行大批量数据(千万级)的增删改查各自性能的优缺点?

jwchen的主页 jwchen | 初学一级 | 园豆:27
提问于:2015-10-25 23:45
< >
分享
最佳答案
0

如果针对千万级别或者更多的数据,使用Hibernate这种OR Mapping是不太可取的。

一、把数据从数据库中捞到中间件上,封装为Beans,处理完后再由Hibernate构造SQL更新数据。从资源占用、效率等方面来讲,这种方式在大数据量的业务场景下是不适用的。

二、对于千万级或者更多的数据量,如果使用传统的关系型数据库的话:

1、合理考虑数据存储和使用的方式,如使用高级存储、合适的RAID方式、分表、分区等等。保证数据结构合理、存取方便快捷,这是基础。

2、尽量使用sql来解决问题,可以考虑使用存储过程。减少数据通讯、转换等造成的不必要的压力。同时要数据数据库机器的配置是否能够顶得住。

3、适当使用数据库的高级特性,如在oracle下,可以通过为sql指定parallel等hint来适当提升性能。

4、如果对速度有更高的要求,可以在java代码端进行并行处理。这种方式要考虑的问题就比较多了,比如说在集群环境如何处理等。

收获园豆:30
yujj_cn | 菜鸟二级 |园豆:232 | 2015-10-29 13:56
其他回答(1)
0

自己试试吧,hibernate是封装了jdbc,存储过程其实也是执行sql,但批量的操作还是用存储过程

稳稳的河 | 园豆:4216 (老鸟四级) | 2015-10-26 10:06
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册