MySQL 查询数据库大小

Posted

技术标签:

【中文标题】MySQL 查询数据库大小【英文标题】:MySQL Query database size 【发布时间】:2012-08-04 19:40:25 【问题描述】:

是否有可以用来确定 mysql 中数据库大小的查询或函数?如果不是,在 MySQL 中查找数据库大小的典型方法是什么?

我在谷歌上搜索发现SELECT CONCAT(sum(ROUND(((DATA_LENGTH + INDEX_LENGTH - DATA_FREE) / 1024 / 1024),2))," MB") AS Size FROM INFORMATION_SCHEMA.TABLES where TABLE_SCHEMA like '%YOUR_DB_NAME%' ;

它返回一个我知道是 400MB 的数据库474989023196466.25 MB

【问题讨论】:

在我所有的表中,data_free 远大于 data_length,这意味着您的查询将返回一个负数。也许它将其解释为无符号正整数,因此是荒谬的结果。当我尝试粘贴该查询时,我收到错误“BIGINT UNSIGNED 值超出范围”。 对于特定数据库/表的大小,本页提供的答案将帮助您rathishkumar.in/2017/12/… 这能回答你的问题吗? How to get size of mysql database? @frederj 你的链接是在这个问题之后提出的问题 @Prophet 问题的日期并不重要。根据问题和发布的答案,目标问题应该是最佳问题。 【参考方案1】:

试试这个查询:

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

或者用这个,如果你想 ROUND :

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

【讨论】:

【参考方案2】:

试试:

SELECT table_schema, sum(data_length + index_length) FROM information_schema.TABLES GROUP BY table_schema;

【讨论】:

【参考方案3】:
SELECT table_schema "DB Name", 
       Round(Sum(data_length + index_length) / 1024 / 1024, 1) "DB Size in MB" 
FROM   information_schema.tables 
GROUP  BY table_schema; 

【讨论】:

以上是关于MySQL 查询数据库大小的主要内容,如果未能解决你的问题,请参考以下文章

MySQL 查询数据库大小

mysql模糊查询区分大小写的问题~~

查询以确定数据库中表的大小? (mysql)

MySQL常用查询

mysql数据库使用sql查询数据库大小及表大小

MySQL中查询表及索引大小的方法