我想知道有多少空间做我的MySQL数据库的使用,以便选择一个虚拟主机。 我发现命令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字节此表的数据? 又是什么索引长度是什么意思? 谢谢 !
从S.普拉卡什,发现在MySQL的论坛 :
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;
您可以通过在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>"
如果你使用phpMyAdmin,它可以告诉你这些信息。
只要进入“数据库”(顶部菜单),并单击“启用统计”。
你会看到这样的事情:
这可能会失去一些精度大小上去,但它应该是足够准确的为您的目的。
如果你想找到它在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;
基本上有两种方法:查询DB(数据长度+索引长度)或检查文件大小。 指数长短与存储在索引中的数据。
一切都说明如下:
http://www.mkyong.com/mysql/how-to-calculate-the-mysql-database-size/
答案都不包括开销大小和表的元数据的大小。
这里是由数据库分配的“磁盘空间不足”的一个更准确的估计。
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'
SUM(Data_free)
可能会或可能是无效的 。 这取决于历史innodb_file_per_table
。 更多的讨论中找到这里 。
MySQL的工具由Oracle有一个命令调用mysqldiskusage显示每个数据库的磁盘使用情况: https://dev.mysql.com/doc/mysql-utilities/1.6/en/mysqldiskusage.html
如果你正在使用MySQL工作台,它很容易得到数据库大小,每个表的大小,索引大小等的所有细节
- 右键单击模式
选择模式督察选项
它显示模式大小的所有细节
选择表标签,查看每个表的大小。
在数据长柱diplayed表大小
如果你想找到所有MySQL数据库的大小,我们这个命令,它会显示以MB为单位各自的大小;
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;