前提:目前需要删除大部分的数据,保留最近一段时间的数据

1、delete删除数据
我们知道delete语句的删除速度与索引量成正比,此表中的索引量已经很大了,而且数据量非常之巨大,若采用常规delete语句删除,必定会话费很长的时间。并且Delete语句删除不会释放出磁盘空间,所以肯定还是会出现报警,所以此种方式不可取。
2、drop删除表
流程简述:新建结构相同的表,命名“table_new”,’将需要保存的数据插入到此表中,然后drop掉老表"table_old",然后修改“table_new”的表名。

# Sql语句如下:
# 基于老表新建新表
CREATE TABLE table_new LIKE table_old;
# 插入数据到新表(以保存2019-10-01到现在的数据为例,如果数据过大可分批插入)
INSERT INTO table_new SELECT * FROM table_old WHERE date > '2019-10-01 00:00:00';
# 然后drop老表“table_old”
DROP TABLE table_old;
# 重命名新表“table_new”
ALTER TABLE table_new RENAME TO table_old;

标签: mysql

添加新评论