遇见单表数据量比较多的时候,用delete需要很长的时间。可以考虑用新建表替换旧表的方式进行。
- 创建一张与原表结果一样的新表
CREATE TABLE `sequ*******_new` (
`id` bigint(20) NOT NULL COMMENT 'ID',
……(一堆字段)
PRIMARY KEY (`id`),
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC;
- 删除原表
drop table sequ*******;
- 修改新表名称
alter table sequ*******_new rename to sequ*******;
如果你用delete的话,那消耗的时间会很长。如果用上面这种方式的话,可能10s内就可以搞定。