MySQL表空间趋向于增加大的删除。
我正在做:
s = session.query(model)
s.delete()
我明白我可以添加
s.limit(1000)
和sleep
,并在每次删除后重新查询s.all()
以确定是否已擦除所有条目。是否有一种方法,只是说删除批量的1000
,直到所有的原始记录已被清除?
如果在单个事务中删除大量记录,则事务日志和所需空间将非常大。如果您需要该事务,这是不可避免的(重构为不需要它)。否则,在较小的记录块(例如100,000左右)之间调用.commit()。