需求:表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大表数据清理方案相关推荐

  1. Mysql大表数据清理

    假设大表表名:t_log delete操作会记录mysql日志,大数据量的清理会耗费大量时间,所以一般得用其他方式. 1.如果大表数据对我们来说不重要,完全可以直接清理,那么可以用truncate t ...

  2. mysql大表数据抽取_从云数据迁移服务看MySQL大表抽取模式

    摘要:MySQL JDBC抽取到底应该采用什么样的方式,且听小编给你娓娓道来. 小编最近在云上的一个迁移项目中被MySQL抽取模式折磨的很惨.一开始爆内存被客户怼,再后来迁移效率低下再被怼.MySQL ...

  3. 【开源项目】mysql大表数据迁移

    历史数据迁移 项目地址:https://gitee.com/xl-echo/dataMigration 历史迁移解决方案.微服务的架构为基础,使用多种设计模式,如:单利.桥接.工厂.模板.策略等.其中 ...

  4. delete mysql 大表_无语了,直到今天,我才揪出MySQL磁盘消耗迅猛的“真凶”!

    作者:dbapower 链接:https://blog.51cto.com/suifu/2135599 背景 Part1:写在最前 当一张单表10亿数据量的表放在你面前,你将面临着什么? Part2: ...

  5. 史上最全MySQL 大表优化方案(长文)

    转载自  史上最全MySQL 大表优化方案(长文) 当MySQL单表记录数过大时,增删改查性能都会急剧下降,可以参考以下步骤来优化: 一.单表优化 除非单表数据未来会一直不断上涨,否则不要一开始就考虑 ...

  6. MySQL 大表优化方案(1)

    转载自  干货!!!MySQL 大表优化方案(1) 当MySQL单表记录数过大时,增删改查性能都会急剧下降,可以参考以下步骤来优化: 单表优化 除非单表数据未来会一直不断上涨,否则不要一开始就考虑拆分 ...

  7. MySQL快速清空大表数据(truncate table table_name;)

    MySQL快速清空大表数据 项目初次上线,进行性能测试造的数据量巨大,都是些不可用数据,但又有一些是必须保留的,很多时候需要进行系统性的清理数据或者是,将有用的数据筛选出来之后再插入到表中!保留表结构 ...

  8. 从云数据迁移服务看MySQL大表抽取模式

    摘要:MySQL JDBC抽取到底应该采用什么样的方式,且听小编给你娓娓道来. 小编最近在云上的一个迁移项目中被MySQL抽取模式折磨的很惨.一开始爆内存被客户怼,再后来迁移效率低下再被怼.MySQL ...

  9. MySQL-在线处理大表数据 在线修改大表的表结构

    文章目录 生猛干货 官方文档 概述 示例 大表数据的分批处理 修改大表的表结构 方案一 : 从表修改,主从切换 方案二: pt-online-schema-change 搞定MySQL 生猛干货 带你 ...

最新文章

  1. iPhone地图 实战iPhone GPS定位系统
  2. AWS Storage Gateway 分类
  3. 注意事项:二、sqlserver2008服务配置
  4. 永劫无间最无解振刀,法神推出缴械奇招,距离高手只差一步
  5. POJ 3889 Fractal Streets(逼近模拟)
  6. Linux下暴力破解工具Hydra详解
  7. 赠书 | 隐私计算:让你的数据信息不再“裸奔”
  8. 计算机教室卡通画,电脑绘画对彩色童年的应用
  9. HBase详细的安装和使用方法
  10. wordcloud词云使用方法
  11. 备忘: MIRACL 大数运算库使用手册
  12. 渗透之——Metasploit命令及模块
  13. 哔哩下载姬v1.3.3 B站视频下载工具
  14. 基于编码应用的主观全景视频质量评价数据库(译)
  15. 推荐一个练习英语听力的网站
  16. Diego1# 机器视觉 -AR标签跟随
  17. 一个屌丝程序猿的人生(七十六)
  18. 计算机软件著作权的注册和认证
  19. 什么是催眠?人机融合智能可以催眠吗?
  20. 刷脸支付只是开端 浅谈3D视觉如何推进新零售崛起

热门文章

  1. python-docx在word中表格添加表格
  2. 计算机高中教育日志,高中日记范文
  3. 计算机专业PhD申请文书范文,留学文书写作:医学专业PHD个人陈述(PS)英文范文模板...
  4. MAC中开关机热键总结
  5. Python爬全国邮政编码的程序
  6. Jquery--02--案例
  7. 财务系统放云服务器安全吗,财务软件用云服务器的弊端
  8. Direct3D的Adapter显卡性能检测类
  9. C#编码格式转换,Url,escape,unicode编码和解码
  10. thunderbird重复的已发送