数据库大小计算?

时间:2013-07-13 06:55:50

标签: mysql

使用以下特征估算数据库大小的最准确方法是什么:

  • MySQL的
  • 1个包含三列的表格:
    • id - >大int)
    • field1 - > varchar 32
    • field2 - > char 32
  • field2上有索引

您可以假设varchar 32已完全填充(全部32个字符)。如果填充每个字段并且有以下内容,那将会有多大:

  1. 1百万行
  2. 500万行
  3. 10亿行
  4. 5亿行
  5. 我的粗略估计是:id为1个字节,其他两个字段各为32位。粗略地说:

      1 + 32 + 32 = 65 * 1 000 000 = 65 million bytes for 1 million rows
    = 62 Megabyte
    

    因此:

    1. 62 Mb
    2. 310 Mb
    3. 310 000 Mb = + - 302Gb
    4. 1 550 000 Mb = 1513 Gb
    5. 这是一个准确的估计吗?

3 个答案:

答案 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个。

  • CHARVARCHAR列所需的存储空间取决于数据库使用的字符集(!),但至少为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。