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

简介: 今天遇到一个客户问我说,我从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时对数据业务还是有影响的,所以建议再备库执行或者在业务低峰期执行。

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
目录
相关文章
|
12月前
|
关系型数据库 MySQL 数据库
阿里云数据库RDS费用价格:MySQL、SQL Server、PostgreSQL和MariaDB引擎收费标准
阿里云RDS数据库支持MySQL、SQL Server、PostgreSQL、MariaDB,多种引擎优惠上线!MySQL倚天版88元/年,SQL Server 2核4G仅299元/年,PostgreSQL 227元/年起。高可用、可弹性伸缩,安全稳定。详情见官网活动页。
1774 152
|
12月前
|
关系型数据库 MySQL 数据库
阿里云数据库RDS支持MySQL、SQL Server、PostgreSQL和MariaDB引擎
阿里云数据库RDS支持MySQL、SQL Server、PostgreSQL和MariaDB引擎,提供高性价比、稳定安全的云数据库服务,适用于多种行业与业务场景。
1200 156
|
存储 数据管理 数据库
数据字典是什么?和数据库、数据仓库有什么关系?
在数据处理中,你是否常困惑于字段含义、指标计算或数据来源?数据字典正是解答这些问题的关键工具,它清晰定义数据的名称、类型、来源、计算方式等,服务于开发者、分析师和数据管理者。本文详解数据字典的定义、组成及其与数据库、数据仓库的关系,助你夯实数据基础。
数据字典是什么?和数据库、数据仓库有什么关系?
|
12月前
|
数据采集 关系型数据库 MySQL
python爬取数据存入数据库
Python爬虫结合Scrapy与SQLAlchemy,实现高效数据采集并存入MySQL/PostgreSQL/SQLite。通过ORM映射、连接池优化与批量提交,支持百万级数据高速写入,具备良好的可扩展性与稳定性。
|
12月前
|
关系型数据库 分布式数据库 数据库
阿里云数据库收费价格:MySQL、PostgreSQL、SQL Server和MariaDB引擎费用整理
阿里云数据库提供多种类型,包括关系型与NoSQL,主流如PolarDB、RDS MySQL/PostgreSQL、Redis等。价格低至21元/月起,支持按需付费与优惠套餐,适用于各类应用场景。
|
人工智能 Java 关系型数据库
使用数据连接池进行数据库操作
使用数据连接池进行数据库操作
288 11
|
关系型数据库 MySQL 数据库
云时代MySQL:RDS与自建数据库的抉择
在云计算时代,选择合适的数据库部署方案至关重要。本文深入对比了AWS RDS与自建MySQL的优劣,帮助您在控制权、运维成本和业务敏捷性之间找到最佳平衡点。内容涵盖核心概念、功能特性、成本模型、安全性、性能优化、高可用方案及迁移策略,为您提供全面的决策参考。
|
SQL 存储 AliSQL
2021云数据库RDS重磅升级发布会
数据库上云已是大势所趋,如何实现弹性上云,降低企业数据库成本?如何将企业既有数据库能力与云数据库能力相结合,使云数据库更好支撑业务运行?应用和数据库布署到云上后,如何保障数据库内核的平稳运行?
2603 0
2021云数据库RDS重磅升级发布会
|
SQL 存储 AliSQL
1月20日 | 2021云数据库RDS重磅升级发布会
云数据库RDS重磅升级发布会将为您一一揭秘,本次发布会于1月20日14:00-15:00开启直播,我们将对RDS的高弹性产品形态、RDS专属规格进行深度解读,并分享AliSQL内核上众多企业级功能和性能、稳定性、安全等方面的优化。2021开年RDS重磅升级发布会不容错过,敬请期待!
1099 0
1月20日 | 2021云数据库RDS重磅升级发布会

推荐镜像

更多