mysql数据库怎样实现亿级数据快速清理
发表于:2025-11-08 作者:千家信息网编辑
千家信息网最后更新 2025年11月08日,这篇文章给大家分享的是有关mysql数据库怎样实现亿级数据快速清理的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。今天收到磁盘报警异常,50G的磁盘被撑爆了,分析解决过程如下
千家信息网最后更新 2025年11月08日mysql数据库怎样实现亿级数据快速清理
这篇文章给大家分享的是有关mysql数据库怎样实现亿级数据快速清理的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。
今天收到磁盘报警异常,50G的磁盘被撑爆了,分析解决过程如下:
1. 进入linux服务器,查看mysql文件夹中各个数据库所占的磁盘空间大小
看到了吗,光olderdb就占了25G
2. 用SQLyog登录mysql数据库,查看数据库各个表的占用空间情况
SELECT CONCAT(table_schema,'.',table_name) AS 'aaa', table_rows AS 'Number of Rows', CONCAT(ROUND(data_length/(1024*1024*1024),6),' G') AS 'Data Size', CONCAT(ROUND(index_length/(1024*1024*1024),6),' G') AS 'Index Size' , CONCAT(ROUND((data_length+index_length)/(1024*1024*1024),6),' G') AS'Total' FROM information_schema.TABLES WHERE table_schema LIKE 'olderdb';
3. 查询主键索引
SHOW INDEX FROM orbit
采取策略
前提:目前需要删除80%的数据
① delete语句
我们知道delete语句的删除速度与索引量成正比,此表中的索引量已经很大了,而且数据量非常之巨大,若采用常规delete语句删除,必定会话费几天的时间。
Delete语句删除不会释放出磁盘空间,所以肯定还是会出现报警,所以此种方式不可取。
② drop掉表
新建结构相同的表,命名"cc",'将需要保存的数据插入到此表中,然后drop掉老表。
Sql语句如下:
基于老表新建新表
CREATE TABLE cc LIKE orbit ;
插入数据(几百万的数据量一定要分批插入,一次30万-40万为最佳,毕竟mysql的数据处理能力有限)
按日期查询后插入(每天大概会产生30多万数据量,所以采用日期插入)
INSERT INTO cc SELECT * FROM orbit WHERE xttime > '2018-04-16 00:00:00' AND xttime<='2018-04-17 00:00:00';
结果如下:
可以看到50多万的数据量用了不到5分钟,还是比较快的。
清理后数据表空间得以释放
然后drop掉老表
DROP TABLE orbit
目测只用了3秒左右
重命名新表"cc"
ALTER TABLE cc RENAME TO orbit
感谢各位的阅读!关于"mysql数据库怎样实现亿级数据快速清理"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!
数据
数据库
语句
磁盘
空间
索引
老表
内容
日期
更多
篇文章
还是
报警
查询
不错
实用
巨大
很大
相同
前提
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
网络安全面临的危险等级
信息网络技术的发展方向是集
软件开发费用销售费用
电脑首选dns服务器地址错误
合肥丰收互联网科技有限公司
计算机三级网络技术视频资源
华为网络安全工程师证能考吗
mysql云数据库配置
云服务器安全狗怎么样
国家网络安全产业发展机会
Oracle提高数据库安全
网络技术顾问的合同
数据库 c管理系统
mc服务器怎么取消隐身
9月1日 网络安全
服务器安全软件哪个好用吗
网络技术对商业发展
某软件开发企业为
天水网络安全知识竞赛
北航网络安全专业导师
武汉软件开发平均待遇
CF快速开始怎么设置全服务器
微信聊天记录是哪一种数据库
安仁软件开发工程师学费多少
我的世界如何搭建一台服务器
2019年国家网络安全宣传
阿里云服务器小程序怎么挑选
电力系统网络安全监控图
手机软件开发排行榜
ntp服务器无法同步