云数据库RDS-mysql多给我计算数据占用空间了吧?

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS PostgreSQL,集群系列 2核4GB
简介: 今天遇到一个客户问我说,我从MySQL里统计我的数据占用空间只有500G左右,而云控制台和售后给我的数据都是数我的数据占用了1.5T左右的空间,那为啥有1T空间去哪里了?日志等其他文件所占空间也没有统计到数据文件中,那数据文件多占了1T的空间到底是怎么回事,是不是阿里多给我计算了占用的空间?         其实很简单,两种查询得方法肯定有不准确的地方,客户是在mysql的元数据表里information_schema.tables中查询的,而控制台显示的空间占用情况是RDS从OS层面获取的表文件占用空间情况。

今天遇到一个客户问我说,我从MySQL里统计我的数据占用空间只有500G左右,而云控制台和售后给我的数据都是数我的数据占用了1.5T左右的空间,那为啥有1T空间去哪里了?日志等其他文件所占空间也没有统计到数据文件中,那数据文件多占了1T的空间到底是怎么回事,是不是阿里多给我计算了占用的空间?


        其实很简单,两种查询得方法肯定有不准确的地方,客户是在mysql的元数据表里information_schema.tables中查询的,而控制台显示的空间占用情况是RDS从OS层面获取的表文件占用空间情况。说道这里大家估计都明白了,从OS层面获取应该更准确。那为啥两者差距这么大,那我们一起来看看information_schema.tables中的信息是怎么来的。


       查看相关文档发现information_schema.tables中的空间信息是通过采样加计算获取的一个估值,如果采样采集的点与实际数据占用情况区别不大时,这个估值才准确,如果说表的记录长短不一,或者表经过长时间DDL操作,采集点发生了变化,那么information_schema.tables存放的这个估值是不准确的,有可能与实际差距会很大。


      既然原因我们找到了,那么如何解决呢?

     MySQL提供重新采集的命令,analyze table  tablename,我们手动重新采集一下,再去做统计,就与控制台显示的空间占用情况基本一致了。


     为啥说“基本”一致而不是“完全”一致呢?因为实际情况每条记录不可能完全一样,而且总归是抽样计算,所以必然会有误差。但是差距不会很大,因为关系型数据库中单表存放的应该同样类型的数据。所以即使不同也是差距不大。


      那么这次重新采用了,随着数据库的数据变化,这个估值又会与实际存放值有较大差距,所以还是建议客户以控制台显示的空间占用情况为准,这才是最准确的。


下面拿一张表举个例子演示一下:


表t_growth_child_ID占用空间205G(OS层面获取)如下图


ed142a092bb03f75d2add17b078cc5f2cc21c746

 

从information_schema.tables的查询空间语句:

 


查询结果截图:

864ce0146d0261d9174335864ec7b354ef6ff2f3



重新采集截图:

45273c2a1b20a4b1b998ae2814a442e495b617a2


重新查询截图:

52bcdd772716d174168b014373a6d7df04c27e9e


如图数据空间和索引空间发生差异较大的变化,与直接从OS层面获取的数据文件大小基本一致。


另外注意,在进行analyze table时对数据业务还是有影响的,所以建议再备库执行或者在业务低峰期执行。

相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
打赏
0
0
0
0
21
分享
相关文章
大数据-88 Spark 集群 案例学习 Spark Scala 案例 SuperWordCount 计算结果数据写入MySQL
大数据-88 Spark 集群 案例学习 Spark Scala 案例 SuperWordCount 计算结果数据写入MySQL
82 3
云数据库:从零到一,构建高可用MySQL集群
在互联网时代,数据成为企业核心资产,传统单机数据库难以满足高并发、高可用需求。云数据库通过弹性扩展、分布式架构等优势解决了这些问题,但也面临数据安全和性能优化挑战。本文介绍了如何从零开始构建高可用MySQL集群,涵盖选择云服务提供商、创建实例、配置高可用架构、数据备份恢复及性能优化等内容,并通过电商平台案例展示了具体应用。
手把手带你从自建 MySQL 迁移到云数据库,一步就能脱胎换骨
阿里云瑶池数据库来开课啦!自建数据库迁移至云数据库 RDS原来只要一步操作就能搞定!
一种小资源情况下RDS数据实时同步StarRocks方案
使用一台4C8 G服务器轻松实现2个MySQL实例中通过负责分库分表规则之后的5000多张表的数据实时同步到StarRocks
233 67
手把手带你从自建 MySQL 迁移到云数据库,一步就能脱胎换骨
阿里云瑶池数据库来开课啦!自建数据库迁移至云数据库 RDS原来只要一步操作就能搞定!点击阅读原文完成实验就可获得一本日历哦~
RDS MySQL灾备服务协同解决方案构建问题之数据库备份数据的云上云下迁移如何解决
RDS MySQL灾备服务协同解决方案构建问题之数据库备份数据的云上云下迁移如何解决
MySQL计算某条数据与上一条数据的生成时间差
MySQL计算某条数据与上一条数据的生成时间差
124 2
数据库空间之谜:彻底解决RDS for SQL Server的空间难题
【8月更文挑战第16天】在管理阿里云RDS for SQL Server时,合理排查与解决空间问题是确保数据库性能稳定的关键。常见问题包括数据文件增长、日志文件膨胀及索引碎片累积。利用SQL Server的动态管理视图(DMV)可有效监测文件使用情况、日志空间及索引碎片化程度。例如,使用`sp_spaceused`检查文件使用量,`sys.dm_db_log_space_usage`监控日志空间,`sys.dm_db_index_physical_stats`识别索引碎片。同时,合理的备份策略和文件组设置也有助于优化空间使用,确保数据库高效运行。
190 2
DataWorks产品使用合集之当需要将数据从ODPS同步到RDS,且ODPS表是二级分区表时,如何同步所有二级分区的数据
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
125 7

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等