mysql数据库快速删除千万级数据

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql数据库快速删除千万级数据相关的知识,希望对你有一定的参考价值。

参考技术A 系统内有一只游戏日志表,每日以百万条数据增长,过段时间需要按照日期清理数据。同事使用delete循环删除过一次,时间久不说,表中的数据是删除了,但是查看服务器发现,*.idb文件大小居高不下,使用optimize table 表名 , 优化表以后,内存大小恢复正常。前前后后花费将近4个小时的时间。效率比较低,偶然想起TRUNCATE TABLE,决定使用以下方案,结果10分钟内,清除3千多万条废弃数据。记录以下,已备下次使用。

按以上步骤,可以解决锁表问题。

怎么快速复制千万级的Mysql数据库表

参考技术A 我google了一下大概有一下几个方法,
1.复制表结构及数据到新表
CREATE TABLE 新表 SELECT * FROM 旧表
2.只复制表结构到新表
CREATE TABLE 新表 SELECT * FROM 旧表 WHERE 1=2
即:让WHERE条件不成立.
3.复制旧表的数据到新表(假设两个表结构一样)
INSERT INTO 新表 SELECT * FROM 旧表
4.复制旧表的数据到新表(假设两个表结构不一样)
INSERT INTO 新表(字段1,字段2,.......) SELECT 字段1,字段2,...... FROM 旧表

以上是关于mysql数据库快速删除千万级数据的主要内容,如果未能解决你的问题,请参考以下文章

如何优化Mysql千万级快速分页

阿里二面:MySQL索引是怎么支撑千万级表的快速查找?

Mysql千万级数据删除实操-企业案例

MySQL删除千万级数据量导致的慢查询优化

Python批量删除mysql中千万级大量数据

如何优化Mysql千万级快速分页