是否有任何技术可以计算每个 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/