1. 首页
  2. 数据库
  3. MySQL
  4. MySQL 快速删除大量数据(千万级别)的几种实践方案详解

MySQL 快速删除大量数据(千万级别)的几种实践方案详解

上传者: 2021-09-07 23:52:55上传 PDF文件 234.04 KB 热度 6次

笔者最近工作中遇见一个性能瓶颈问题,MySQL表,每天大概新增776万条记录,存储周期为7天,超过7天的数据需要在新增记录前老化。连续运行9天以后,删除一天的数据大概需要3个半小时,而这是不能接受的。当然如果要整个表删除,毋庸置疑用TRUNCATE TABLE就好。最初的方案,代码如下:后经过研究,最终实现了飞一般的速度删除770多万条数据,单张表总数据量在4600万上下,优化过程的方案层层递进,详细记录如下:。MySQL表分区有几种方式,包括RANGE、KEY、LIST、HASH,具体参见官方文档。查询出需要老化的日期所在的分区,SQL语句如下:执行结果如下:

用户评论