2017-06-25 64 views
0

我想获得数据库的列表以及每个数据库的大小!我试了很多疑问和下面一个作品,但它只会显示有我的数据库至少有一个记录,或者,换句话说,这将只具有列表数据库规模超过0.1即使数据库大小为0.000MB,如何获取MySQL数据库列表?

下面是该查询:

SELECT table_schema 'database', sum(data_length + index_length)/1024/1024 'size' FROM information_schema.TABLES GROUP BY table_schema; 

很明显,我不会使用此查询来获取具有0个表的数据库的列表,因为它在information_schema表中查找表和它的大小。

我该如何修改这个查询来让我看到没有表的数据库?我已经尝试了与MySQL数据库大小相关的StackOverflow问题上给出的每个查询。

更新:我在PHP中工作,如果完整查询不可用,请向我展示一种方法来获取具有大小的数据库列表,即使PHP以任何方式可能。

回答

0

即使对于没有表的模式,您也可以从SCHEMATA表中获得模式列表。

SELECT s.schema_name AS 'database', 
    SUM(t.data_length + t.index_length)/1024/1024 AS 'size' 
FROM INFORMATION_SCHEMA.SCHEMATA AS s 
LEFT OUTER JOIN INFORMATION_SCHEMA.TABLES AS t ON s.schema_name=t.table_schema 
GROUP BY s.schema_name; 
+0

我不是那么专业的SQL,这是我运行此查询后得到的错误。纠正我'#1054 - 'on'子句''中的未知列's.schema.name'... –

+0

我的道歉,我在连接条件中有一个错字。我已经修复它。如果您需要使用它,您可能需要学习SQL。 –

相关问题