Mysql大表数据清理方案
需求:表t_user_login_log中存储了上千条数据,我们需要对该表做数据清理,只保留近三个月的数据。
方案一
数据量<1000条时推荐使用
DELETE方法
推荐力度:极不推荐
是否会影响线上业务:严重影响
会影响线上业务,一般情况会造成其它服务操作mysql卡顿,严重时会造成其它服务业务无法正常进行。
使用select查询出需要清理的最小id和最大id,使用delete删除即可,示例场景:
#查询最小id与最大id
SELECT MIN(id),MAX(id) FROM t_user_login_log;
#删除数据
DELETE FROM t_user_login_log WHERE id>=minId and id <= maxId;
方案缺陷
数据量较大时,会造成mysql服务进程CPU飙升,缓冲区不足的情况下失败。
方案二
分流DELETE方法
推荐力度:不推荐
是否会影响线上业务:影响
该方法是网上比较流行的方法,但是遇到表数据比较大时,删除数据仍然比较吃力,mysql的主进程CPU占用比较高,会影响线上业务。
例如我们查出需要删除100W条数据,通过编写脚本代码,将这100W条数据分100次进行删除。
方案三
INSERT+RENAME TO+DROP TABLE
推荐力度:推荐
是否会影响线上业务:不影响
例如t_user_login_log表中有5000W条数据,我们只需要保留最近三个月的数据,三个月以内的数据1500W条,过期数据3500W条。
步骤一:拷贝表结构,生成临时表
#通过下面的msyql命令完成表结构拷贝
CREATE TABLE IF NOT EXISTS t_user_login_log_backup_tmp (LIKE t_user_login_log);
步骤二:计算出需要保留的数据
步骤三:将需要保留的数据分批次INSERT临时表中
步骤四:INSERT完成后,通过RENAME TO将源表修改为备份表
步骤五:将临时表修改为正式表
注:进行步骤四和步骤五时,线上业务运行期间执行时,可能造成小量的数据丢失。
如何确保数据不丢失:线上业务在运行时,先走一、二、三的流程,需要保留的数据INSERT差不多时,抽时间将线上业务维护,再走四和五的流程,这样即可确保数据不会丢失。
笔者处理了一张5000W条的表数据,保留的数据1000多W左右,整个用时10来分钟就处理完了。
Mysql大表数据清理方案相关推荐
- Mysql大表数据清理
假设大表表名:t_log delete操作会记录mysql日志,大数据量的清理会耗费大量时间,所以一般得用其他方式. 1.如果大表数据对我们来说不重要,完全可以直接清理,那么可以用truncate t ...
- mysql大表数据抽取_从云数据迁移服务看MySQL大表抽取模式
摘要:MySQL JDBC抽取到底应该采用什么样的方式,且听小编给你娓娓道来. 小编最近在云上的一个迁移项目中被MySQL抽取模式折磨的很惨.一开始爆内存被客户怼,再后来迁移效率低下再被怼.MySQL ...
- 【开源项目】mysql大表数据迁移
历史数据迁移 项目地址:https://gitee.com/xl-echo/dataMigration 历史迁移解决方案.微服务的架构为基础,使用多种设计模式,如:单利.桥接.工厂.模板.策略等.其中 ...
- delete mysql 大表_无语了,直到今天,我才揪出MySQL磁盘消耗迅猛的“真凶”!
作者:dbapower 链接:https://blog.51cto.com/suifu/2135599 背景 Part1:写在最前 当一张单表10亿数据量的表放在你面前,你将面临着什么? Part2: ...
- 史上最全MySQL 大表优化方案(长文)
转载自 史上最全MySQL 大表优化方案(长文) 当MySQL单表记录数过大时,增删改查性能都会急剧下降,可以参考以下步骤来优化: 一.单表优化 除非单表数据未来会一直不断上涨,否则不要一开始就考虑 ...
- MySQL 大表优化方案(1)
转载自 干货!!!MySQL 大表优化方案(1) 当MySQL单表记录数过大时,增删改查性能都会急剧下降,可以参考以下步骤来优化: 单表优化 除非单表数据未来会一直不断上涨,否则不要一开始就考虑拆分 ...
- MySQL快速清空大表数据(truncate table table_name;)
MySQL快速清空大表数据 项目初次上线,进行性能测试造的数据量巨大,都是些不可用数据,但又有一些是必须保留的,很多时候需要进行系统性的清理数据或者是,将有用的数据筛选出来之后再插入到表中!保留表结构 ...
- 从云数据迁移服务看MySQL大表抽取模式
摘要:MySQL JDBC抽取到底应该采用什么样的方式,且听小编给你娓娓道来. 小编最近在云上的一个迁移项目中被MySQL抽取模式折磨的很惨.一开始爆内存被客户怼,再后来迁移效率低下再被怼.MySQL ...
- MySQL-在线处理大表数据 在线修改大表的表结构
文章目录 生猛干货 官方文档 概述 示例 大表数据的分批处理 修改大表的表结构 方案一 : 从表修改,主从切换 方案二: pt-online-schema-change 搞定MySQL 生猛干货 带你 ...
最新文章
- iPhone地图 实战iPhone GPS定位系统
- AWS Storage Gateway 分类
- 注意事项:二、sqlserver2008服务配置
- 永劫无间最无解振刀,法神推出缴械奇招,距离高手只差一步
- POJ 3889 Fractal Streets(逼近模拟)
- Linux下暴力破解工具Hydra详解
- 赠书 | 隐私计算:让你的数据信息不再“裸奔”
- 计算机教室卡通画,电脑绘画对彩色童年的应用
- HBase详细的安装和使用方法
- wordcloud词云使用方法
- 备忘: MIRACL 大数运算库使用手册
- 渗透之——Metasploit命令及模块
- 哔哩下载姬v1.3.3 B站视频下载工具
- 基于编码应用的主观全景视频质量评价数据库(译)
- 推荐一个练习英语听力的网站
- Diego1# 机器视觉 -AR标签跟随
- 一个屌丝程序猿的人生(七十六)
- 计算机软件著作权的注册和认证
- 什么是催眠?人机融合智能可以催眠吗?
- 刷脸支付只是开端 浅谈3D视觉如何推进新零售崛起