pyscopg2,我应该分块提交吗?

时间:2018-08-06 21:51:21

标签: python postgresql psycopg2

我正在一个正在使用Psycopg2连接到python中的Postgre数据库的项目中,并且在该项目中,有一个地方,在执行一定数量的插入后,将对数据库进行所有修改。 / p>

所以我有一个基本问题: 以较小的块提交有什么好处,还是与等到最后提交一样?

例如,说我要插入7,000行数据,我应该在插入1,000行之后提交还是只是等到所有数据添加完毕?

如果大型提交有问题,那是什么?我是否可能使数据库崩溃?或引起某种溢出?

1 个答案:

答案 0 :(得分:1)

与其他一些数据库系统不同,在单个事务中任意修改许多行没有问题。

通常最好在单个事务中完成所有操作,以使整个事情成功或失败,但是有两个注意事项:

  1. 如果事务处理花费大量时间,它将使VACUUM在事务处理期间无法在数据库的其余部分上执行其工作。如果存在大量并发写入活动,则可能导致表膨胀。

  2. 如果您预计会出现很多故障并且不想每次都从头开始重新启动,则批量执行此操作可能会很有用。