如何确定MySQL表中行子集的大小

时间:2014-01-07 11:33:47

标签: mysql database select memory hard-drive

如何计算MySQL表中行子集使用的字节数(MB,GB)。 用例是确定用户在数据库中的占用空间。所以我们的想法是选择属于表中用户的所有行,计算这些行的大小,包括它们的索引(索引?)

我发现了这样的东西,但这只给了我整张桌子的大小:

SELECT table_schema "Data Base Name", sum( data_length + index_length ) / 1024 / 1024 "Data Base Size in MB" 
FROM information_schema.TABLES GROUP BY table_schema ;

我真的很感激答案。

1 个答案:

答案 0 :(得分:1)

我认为最简单的方法是估算。我假设您可以计算表中所拥有的行数#39;由该用户,以及从那个行和总行数,你可以得到行的百分比'拥有'由该用户。将该百分比应用于表格的总大小,您就有了估计值。

如果你尝试任何更准确的东西,你不可能在没有大量努力的情况下实现它,并且它可能涉及估计其他事情,所以我只想说明一下。如果我被要求这样做,我会说它不可能是准确的但是可以做出合理的估计,那就足够了....