有没有办法在mysql中进行批量/更快的删除?

Sha*_*500 3 mysql

我有一个包含1000万条记录的表,删除和保留最近30天的最快方法是什么.

我知道这可以在事件调度程序中完成,但我担心的是如果花费太多时间,它可能会锁定表很长时间.

如果你能提出一些最佳方法,那就太好了.

谢谢.

Mic*_*odd 5

随便,我会:

  1. 重命名表格
  2. 创建一个与原始表同名的空表
  3. 抢过去30天内从您的"临时"表,并把它们插入回新表
  4. 删除临时表

这将使您能够(几乎)整个过程保持表格直播,并在闲暇时获得过去30天的数据.