database - 如何计算每个 MariaDB 表行中的实际数据大小?

标签 database go mariadb

是否有任何技术可以计算每个 SQL 表行的实际使用数据大小?包括启用的索引和日志记录? 字段大小总和不正确,因为某些字段可能为空或数据小于字段大小。 目标是知道每个用户使用了多少数据。 可能我可以在处理程序端执行此操作。

最佳答案

有了“正是”这个词,我不得不说“不”。

将其更改为“大约”,然后我说

SHOW TABLE STATUS

并查看 Avg_row_length。此信息也可在 information_schema.TABLES 中找到。

但是,这只是一个平均值。这不是一个非常准确的平均值。

你关心这里还是那里的一百个字节?用户是否拥有单个表中的行?这到底是怎么回事?

Data 行和Index 行的大小有一些粗略的计算公式,但Log 记录没有。其中一个问题是,如果 BTree 中存在“ block 拆分”,因为其他人插入了一行,您是否将新 block 平均分配给所有用户?或者是什么?

关于database - 如何计算每个 MariaDB 表行中的实际数据大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49943754/

相关文章:

kubernetes - Redis - 使用集群避免数据丢失(使用 Gossip 协议(protocol))

java - 添加 MariaDB 工件时 SchemaCrawler 出错

java - 在 Android 的房间数据库中插入复合键的重复值后应用程序崩溃

php - 使用 MongoDB\Driver\Manager 转换 MongoDB 代码

java - SQLiteDatabaseHelper接收IllegalStateException : database not open in constructor

go - 如何在 Go 中将 bool 值转换为字符串?

git - 如何组织具有 vendor 依赖项的 Go 项目?

go - 在不指定类型的情况下在 Go 中声明变量

mysql - 如果表 B 中不存在键,则从表 A 进行 CASCADE INSERT

database - 键/值存储中的事务