我有一个cron设置,用于备份生产mysql表,并定期从表中清除数据。我必须删除ids引用的多个表中的数据。
一些背景:我需要删除大约200万行,我的应用程序将不断地读/写到我的db(它通常不应该访问被删除的行)
我的问题是如何根据以下参数构造删除查询:
发布于 2015-04-18 10:28:37
假设:
与全部删除和批处理相比,批量执行更好。
其他方法:(我们需要在某一时间之前删除行) 1.拥有一个运行每个configured_time和。从表中选择pk,清除时间<您的清除时间.-没有锁。基于pk删除,使用多线程。--行级锁,小事务(跨表)
这种方法将确保较小的事务和仅行级别的锁。(基于主键的delete只接受行级锁)。而且,您的查询很简单,所以即使部分删除成功,也可以重新运行。我觉得拥有这些原子并不是必需的。
或
或
https://stackoverflow.com/questions/29701878
复制相似问题