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

标签 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 ;

我非常感谢您的回答。

最佳答案

我认为最简单的方法就是进行估算。我假设您可以计算该用户“拥有”的表中的行数,并根据该行数和总行数可以获得该用户“拥有”的行的百分比。将该百分比应用于表格的总大小,您就可以得到估计值。

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

关于mysql - 如何确定 MySQL 表中行子集的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20970568/

相关文章:

MySQL 选择范围内的值,该值不在另一个范围内

mysql - 从具有日期范围和多个联接的查询生成时间列表

python - Django 在一个日期范围内取平均值

database - "COMPRESS FOR ALL OPERATIONS"和 "COMPRESS FOR OLTP"之间的区别?

php - 如何访问封装在 SQL 函数 count() 中的获取的对象属性?

javascript - 隐藏包含与所选文本相同的文本的 div?

php mysql 连接超时错误

sql - 如何根据标志或最近的更新时间戳获取不同的记录?

java - MySQL 选择更新和插入

php - php codeigniter 中使用 join/concat 的 mysql 查询结果