使用以下特征估算数据库大小的最准确方法是什么:
您可以假设varchar 32已完全填充(全部32个字符)。如果填充每个字段并且有以下内容,那将会有多大:
我的粗略估计是:id为1个字节,其他两个字段各为32位。粗略地说:
1 + 32 + 32 = 65 * 1 000 000 = 65 million bytes for 1 million rows
= 62 Megabyte
因此:
这是一个准确的估计吗?
答案 0 :(得分:20)
如果您想知道数据库的当前大小,可以尝试:
SELECT table_schema "Database Name"
, SUM(data_length + index_length) / (1024 * 1024) "Database Size in MB"
FROM information_schema.TABLES
GROUP BY table_schema
答案 1 :(得分:9)
我的粗略估计是:id为1个字节,其他两个字段各为32位。
你方式关闭。请参阅MySQL Data Type Storage Requirements文档。特别是:
BIGINT
是8个字节,而不是1个。
CHAR
或VARCHAR
列所需的存储空间取决于数据库使用的字符集(!),但至少为32个字节(不是位!) CHAR(32)
为VARCHAR(32)
为33。
您根本没有考虑索引的大小。这个大小取决于数据库引擎,但绝对不是零。有关详细信息,请参阅InnoDB row structure上的文档。
答案 2 :(得分:3)
在MySQL网站上,您可以找到有关存储要求的全面信息: http://dev.mysql.com/doc/refman/5.6/en/storage-requirements.html
这取决于你是否使用utf8。