不知道是什么数据库,oracle的话建议:
只需设置足够大的undo表空间,所谓足够大:insert操作要大于数据大小的一倍;update,delete操作要大于数据大小的两倍。当然你要兼顾其他操作的消耗。
提交数量可以认为与内存消耗没什么关系。
如你所述,如果分批的话,会涉及的整个事物的完整性,这和业务逻辑相关,
使用oracle的话,既然这需要是一个事务来提交,既没必要在分批。而且也不建议去故意分批进行操作。
不分批你唯一要承担的就是分批足够的undo空间。
一般都是用statement的executeBatch方法实现批量数据入库操作。
还有一种SQL方式:insert into test(id,name) values('1','Jerry'),('2','Tom'),.....('n','Neo');这样看来,只要拼接好一条SQL,通过statement的execute方法就能实现批量插入操作。
但是一般平台开发都不会用这种方式。
爆机的机率相当的高,我们做的时候一般大概是2万条左右提交一次,也就是分批提交。
分配足够的undo表空间吧