MySQL 磁盘满了,怎么办??

本文涉及的产品
云数据库 RDS MySQL,集群版 2核4GB 100GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: 问题使用命令发现磁盘使用率为100%了,还剩几十兆。一系列神操作:备份数据库,删除实例、删除数据库表、重启mysql服务.结果磁盘空间均为释放怎么办网上查了很多资源,说要进行磁盘碎片化整理。原因是datafree占据的空间太多啦。具体可以通过这个sql查看。
SELECT CONCAT(TRUNCATE(SUM(data_length)/1024/1024,2),'MB') AS data_size,
CONCAT(TRUNCATE(SUM(max_data_length)/1024/1024,2),'MB') AS max_data_size,
CONCAT(TRUNCATE(SUM(data_free)/1024/1024,2),'MB') AS data_free,
CONCAT(TRUNCATE(SUM(index_length)/1024/1024,2),'MB') AS index_size
FROM information_schema.tables WHERE TABLE_NAME = 'datainfo';

这个是后来的图了,之前的图没有留,当时显示一张表里的data_free都达到了20个G。

image.png

网上推荐的做法如下所示,对表格进行碎片化整理。

image.png

image.png

image.png

2、新建一个数据库实例,设置数据库名和字符集

image.png

image.png

image.png

重新进行还原,数据库里的数据有了,并且验证没有问题。


问题解决

mysql碎片化产生的原因:


(1)表的存储会出现碎片化,每当删除了一行内容,该段空间就会变为被留空,而在一段时间内的大量删除操作,会使这种留空的空间变得比存储列表内容所使用的空间更大;


(2)当执行插入操作时,MySQL会尝试使用空白空间,但如果某个空白空间一直没有被大小合适的数据占用,仍然无法将其彻底占用,就形成了碎片;


(3)当MySQL对数据进行扫描时,它扫描的对象实际是列表的容量需求上限,也就是数据被写入的区域中处于峰值位置的部分;


清除碎片的优点:


降低访问表时的IO,提高mysql性能,释放表空间降低磁盘空间使用率


注意:


1.MySQL官方建议不要经常(每小时或每天)进行碎片整理,一般根据实际情况,只需要每周或者每月整理一次即可(我们现在是每月凌晨4点清理mysql所有实例下的表碎片)。


2.在OPTIMIZE TABLE运行过程中,MySQL会锁定表。因此,这个操作一定要在网站访问量较少的时间段进行。


3.清理student的105万条数据, OPTIMIZE TABLE 库.student;本地测试需要37秒。


自测:


大家可以用这条语句看看自己的系统的datafree大不大


相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
2月前
|
缓存 固态存储 关系型数据库
MySQL性能优化指南:深入分析重做日志刷新到磁盘的机制
MySQL性能优化指南:深入分析重做日志刷新到磁盘的机制
106 0
|
2月前
|
缓存 关系型数据库 MySQL
MySQL Binlog--事务日志和BINLOG落盘参数对磁盘IO的影响
MySQL Binlog--事务日志和BINLOG落盘参数对磁盘IO的影响
65 0
|
10月前
|
关系型数据库 MySQL Linux
Linux忘记mysql密码怎么办?
Linux忘记mysql密码怎么办?
228 1
|
关系型数据库 MySQL 数据安全/隐私保护
MySql——忘记密码怎么办
MySql——忘记密码怎么办
145 0
MySql——忘记密码怎么办
|
21天前
|
存储 SQL 关系型数据库
如果mysql磁盘满了,会发生什么?还真被我遇到了!
如果mysql磁盘满了,会发生什么?还真被我遇到了!
10 0
|
2月前
|
SQL 存储 关系型数据库
云数据仓库ADB上AnalyticDBMySQL版与MySQL的DML差异怎么办?
云数据仓库ADB上AnalyticDBMySQL版与MySQL的DML差异怎么办?
89 0
|
算法 关系型数据库 MySQL
mysql忘记密码怎么办(附免密登录和修改密码)
mysql忘记密码怎么办(附免密登录和修改密码)
2205 0
mysql忘记密码怎么办(附免密登录和修改密码)
|
11月前
|
关系型数据库 MySQL Linux
MySQL 忘记密码怎么办
MySQL 忘记密码怎么办
67 0
|
存储 Prometheus 监控
记一次MySQL DB实例磁盘告警的处理过程
记一次MySQL DB实例磁盘告警的处理过程
141 0
记一次MySQL DB实例磁盘告警的处理过程
|
存储 SQL 缓存
细说MySQL中磁盘与CPU的交互——神秘的Buffer Pool
MySQL是如何读取记录的?Buffer Pool缓存功不可没!什么是Buffer Pool?它的结构是什么样的?当数据不断的读取,缓存的数据如何更新?本文将带你详细了解这些!
93 0
细说MySQL中磁盘与CPU的交互——神秘的Buffer Pool