python - 少量删除 SQLAlchemy MySQL

标签 python mysql sqlalchemy

MySQL 表空间往往会因为大量删除而增加。

我目前正在做的事情:

s = session.query(model)
s.delete()

我明白我可以添加

s.limit(1000)
每次删除后

sleep并重新查询s.all()以确定是否所有条目都已被删除。有没有办法只说批量1000删除,直到所有原始记录都被清除?

最佳答案

如果您在单个事务中删除大量记录,您的事务日志和所需空间将会很大。如果您需要事务,这是不可避免的(重构为不需要它)。否则,在较小的记录 block (例如 100,000 条左右)之间调用 .commit()。

关于python - 少量删除 SQLAlchemy MySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32915918/

相关文章:

mysql - 当 count > x 时显示单独的行

python - 如何使用 SQLAlchemy 和 Alembic 在 Python 中使用 Redshift 方言进行迁移?

python - 无法在python中登录gmail smtp服务器

python - 如何使用 Tox 和 Poetry 在 CircleCI 中设置多个解释器?

php - 关联数组不存储 SQL 的第一个结果

python - sqlalchemy中的无符号 float

sqlalchemy - 如何查询多个多态继承表上的关系?

python - 按条件删除行并填充 pandas 数据框中的新列

python - 是否可以只使用 argparse 解析一个参数组的参数?

mysql - GROUP_CONCAT mysql语句错误