我想知道我的MySQL数据库使用了多少空间,以便选择一个Web主机。
我找到了命令SHOW TABLE STATUS LIKE 'table_name'
所以当我进行查询时,我会得到这样的结果:
Name | Rows | Avg. Row Length | Data_Length | Index Length
---------- ---- --------------- ----------- ------------
table_name 400 55 362000 66560
此表的数据是 362000 还是400 * 362000 = 144800000 ? 索引长度是什么意思? 谢谢!
答案 0 :(得分:272)
来自S. Prakash,发现于MySQL forum:
SELECT table_schema "database name",
sum( data_length + index_length ) / 1024 / 1024 "database size in MB",
sum( data_free )/ 1024 / 1024 "free space in MB"
FROM information_schema.TABLES
GROUP BY table_schema;
或者在一行中便于复制粘贴:
SELECT table_schema "database name", sum( data_length + index_length ) / 1024 / 1024 "database size in MB", sum( data_free )/ 1024 / 1024 "free space in MB" FROM information_schema.TABLES GROUP BY table_schema;
答案 1 :(得分:92)
您可以通过在Mysql客户端
中运行以下命令来获取Mysql数据库的大小SELECT sum(round(((data_length + index_length) / 1024 / 1024 / 1024), 2)) as "Size in GB"
FROM information_schema.TABLES
WHERE table_schema = "<database_name>"
答案 2 :(得分:29)
如果你使用phpMyAdmin,它可以告诉你这个信息。
只需转到“数据库”(顶部的菜单),然后点击“启用统计信息”。
你会看到这样的事情:
随着尺寸的增加,这可能会失去一些准确性,但它应该足够准确用于您的目的。
答案 3 :(得分:8)
如果你想以MB为单位找到它
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;
答案 4 :(得分:3)
基本上有两种方法: 查询DB(数据长度+索引长度)或检查文件大小。索引长度与存储在索引中的数据有关。
这里描述了一切:
http://www.mkyong.com/mysql/how-to-calculate-the-mysql-database-size/
答案 5 :(得分:0)
没有答案包括表格的开销大小和元数据大小。
这是对磁盘空间的更准确估计&#34;由数据库分配。
SELECT ROUND((SUM(data_length+index_length+data_free) + (COUNT(*) * 300 * 1024))/1048576+150, 2) AS MegaBytes FROM information_schema.TABLES WHERE table_schema = 'DATABASE-NAME'
答案 6 :(得分:0)
SUM(Data_free)
可能有效也可能无效。这取决于innodb_file_per_table
的历史。更多讨论发现here。
答案 7 :(得分:0)
Oracle的MySQL Utilities有一个名为mysqldiskusage的命令,它显示每个数据库的磁盘使用情况:https://dev.mysql.com/doc/mysql-utilities/1.6/en/mysqldiskusage.html
答案 8 :(得分:0)
如果使用的是MySql Workbench,则很容易获得数据库大小,每个表大小,索引大小等的所有详细信息。
答案 9 :(得分:0)
如果要查找所有MySQL数据库的大小,请使用此命令,它将以兆字节显示它们各自的大小;
SELECT table_schema "database", sum(data_length + index_length)/1024/1024 "size in MB" FROM information_schema.TABLES GROUP BY table_schema;
如果数据库很大,则可以使用以下命令以GB为单位显示结果;
SELECT table_schema "database", sum(data_length + index_length)/1024/1024/1024 "size in GB" FROM information_schema.TABLES GROUP BY table_schema;
如果只想显示特定数据库的大小,例如YOUR_DATABASE_NAME
,则可以使用以下查询;
SELECT table_schema "database", sum(data_length + index_length)/1024/1024/1024 "size in GB" FROM information_schema.TABLES WHERE table_schema='YOUR_DATABASE_NAME' GROUP BY table_schema;