利用事务一次提交大量插入操作会撑爆数据库服务器内存吗?
比如一个事务中进行20-50万次插入操作会不会出问题啊?请不要想当然的回答,最好是有经验或做过类似测试的人来回答一下、如果会的话,请问事务提交数量和内存消耗的关系大致是怎...
比如一个事务中进行20-50万次插入操作会不会出问题啊?
请不要想当然的回答,最好是有经验或做过类似测试的人来回答一下、
如果会的话,
请问事务提交数量和内存消耗的关系大致是怎么样的?
如果分批提交的话,不是没法回滚了吗?因为数据是一次进来的啊…… 展开
请不要想当然的回答,最好是有经验或做过类似测试的人来回答一下、
如果会的话,
请问事务提交数量和内存消耗的关系大致是怎么样的?
如果分批提交的话,不是没法回滚了吗?因为数据是一次进来的啊…… 展开
4个回答
展开全部
不知道是什么数据库,oracle的话建议:
只需设置足够大的undo表空间,所谓足够大:insert操作要大于数据大小的一倍;update,delete操作要大于数据大小的两倍。当然你要兼顾其他操作的消耗。
提交数量可以认为与内存消耗没什么关系。
如你所述,如果分批的话,会涉及的整个事物的完整性,这和业务逻辑相关,
使用oracle的话,既然这需要是一个事务来提交,既没必要在分批。而且也不建议去故意分批进行操作。
不分批你唯一要承担的就是分批足够的undo空间。
只需设置足够大的undo表空间,所谓足够大:insert操作要大于数据大小的一倍;update,delete操作要大于数据大小的两倍。当然你要兼顾其他操作的消耗。
提交数量可以认为与内存消耗没什么关系。
如你所述,如果分批的话,会涉及的整个事物的完整性,这和业务逻辑相关,
使用oracle的话,既然这需要是一个事务来提交,既没必要在分批。而且也不建议去故意分批进行操作。
不分批你唯一要承担的就是分批足够的undo空间。
展开全部
一般都是用statement的executeBatch方法实现批量数据入库操作。
还有一种SQL方式:insert into test(id,name) values('1','Jerry'),('2','Tom'),.....('n','Neo');这样看来,只要拼接好一条SQL,通过statement的execute方法就能实现批量插入操作。
但是一般平台开发都不会用这种方式。
还有一种SQL方式:insert into test(id,name) values('1','Jerry'),('2','Tom'),.....('n','Neo');这样看来,只要拼接好一条SQL,通过statement的execute方法就能实现批量插入操作。
但是一般平台开发都不会用这种方式。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
爆机的机率相当的高,我们做的时候一般大概是2万条左右提交一次,也就是分批提交。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
分配足够的undo表空间吧
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询