我正在一个正在使用Psycopg2连接到python中的Postgre数据库的项目中,并且在该项目中,有一个地方,在执行一定数量的插入后,将对数据库进行所有修改。 / p>
所以我有一个基本问题: 以较小的块提交有什么好处,还是与等到最后提交一样?
例如,说我要插入7,000行数据,我应该在插入1,000行之后提交还是只是等到所有数据添加完毕?
如果大型提交有问题,那是什么?我是否可能使数据库崩溃?或引起某种溢出?
答案 0 :(得分:1)
与其他一些数据库系统不同,在单个事务中任意修改许多行没有问题。
通常最好在单个事务中完成所有操作,以使整个事情成功或失败,但是有两个注意事项:
如果事务处理花费大量时间,它将使VACUUM
在事务处理期间无法在数据库的其余部分上执行其工作。如果存在大量并发写入活动,则可能导致表膨胀。
如果您预计会出现很多故障并且不想每次都从头开始重新启动,则批量执行此操作可能会很有用。