如何快速修剪大表?
我目前有一个大约2000万行的MySQL表,我需要修剪它。我想删除其中
updateTime
(插入时间戳)超过一个月的每一行
前。我没有亲自对表的顺序进行任何改动,因此数据应该按插入顺序排列,并且在两个字段id
和updateTime
上有一个UNIQUE
键。我如何在短时间内完成这项工作?
没有找到相关结果
已邀请:
4 个回复
械怒等
蹄渭信妥扳
第二种(稍微复杂一点)方法是创建一个新表并复制要保留的数据,截断旧表,然后将行复制回来。
当你要删除大量行并且希望保留相对较小的数字时,使用
比带有
子句的
要快得多。
惭法搽
然后我在一个文件中复制了这个语句并使用了该命令。
这要快得多。 您也可以尝试使用pt-tools等工具。和pt-archiver。
缮记箔
启动进程写入表。
tableName的新插入将从正确的索引开始;旧数据将插入正确的索引中。