我正在尝试获取使用 MyRocks 存储引擎的表在磁盘上占用的空间,但在我期望的结果、查询information_schema
和操作系统报告的大小之间得到了不一致的结果。
为了获得 MariaDB 报告的大小,我使用以下 select 语句:
select table_name 'Table Name',
(data_length+index_length)/power(1024,3) 'Table Size in GB'
from information_schema.tables where table_schema="MyTableName";
对于我正在做的事情,它返回的数字非常小,以至于我怀疑它是否报告了实际大小(4 000 000 行包含大量文本的 0.4GB)。
如果我运行命令du -h /var/lib/mysql/#rocksdb/
,我将获得 2.4GB 的磁盘大小,这比我预期的要多一些。但是,如果我理解正确,MyRocks 会在插入数据时压缩数据,因此该du
命令报告的磁盘空间可能不代表实际的表大小。
那么,是否有可靠的方法来获取表格的大小?我是否已经使用正确的方法来获取表格大小?