如果针对千万级别或者更多的数据,使用Hibernate这种OR Mapping是不太可取的。
一、把数据从数据库中捞到中间件上,封装为Beans,处理完后再由Hibernate构造SQL更新数据。从资源占用、效率等方面来讲,这种方式在大数据量的业务场景下是不适用的。
二、对于千万级或者更多的数据量,如果使用传统的关系型数据库的话:
1、合理考虑数据存储和使用的方式,如使用高级存储、合适的RAID方式、分表、分区等等。保证数据结构合理、存取方便快捷,这是基础。
2、尽量使用sql来解决问题,可以考虑使用存储过程。减少数据通讯、转换等造成的不必要的压力。同时要数据数据库机器的配置是否能够顶得住。
3、适当使用数据库的高级特性,如在oracle下,可以通过为sql指定parallel等hint来适当提升性能。
4、如果对速度有更高的要求,可以在java代码端进行并行处理。这种方式要考虑的问题就比较多了,比如说在集群环境如何处理等。
自己试试吧,hibernate是封装了jdbc,存储过程其实也是执行sql,但批量的操作还是用存储过程