获取按特定值过滤的表大小

时间:2014-07-30 12:12:10

标签: php mysql mysqli

我需要知道每个表的大小(以MB或KB为单位),但是按特定值过滤。在我的例子中,值是用户id,其中每个表都有该列。

所以我尝试了这个:

SELECT table_name AS "Table", 
round(((data_length + index_length) / 1024 / 1024), 2) AS "Size in MB" 
FROM information_schema.TABLES 
WHERE table_schema = "myDBname" AND table_name IN ("co_user", "user")

它工作正常,但它为我提供了每个表的整个大小值。现在我需要获取每个表的值,但仅限于用户id为特定值的行。

AND user_id = 'userIDvalue'

有可能吗?我该怎么办?

我正在使用PHP和MySQL。

谢谢。

1 个答案:

答案 0 :(得分:0)

此类信息未存储在information_schema中。您可以做的是,获取您现在拥有的结果并将其乘以

SELECT COUNT(*) FROM your_table WHERE user_id = 'userIDvalue' / SELECT COUNT(*) FROM your_table