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 查询数据库大小的主要内容,如果未能解决你的问题,请参考以下文章