MySQL 数据库大小估算

问题描述 投票:0回答:2

我有一个应用程序数据库,其中有一个用户表(每个用户 1kbyte 的数据,基于计数字段 * typelength),以及属于一个用户的大约 100 个相同大小的事物(每个事物 0.5kbyte),并且它位于“用户”表和“事物”表。

这似乎会导致每个用户产生大约 51kbyte 的数据。但是,我听说对于 MySQL,我应该将其加倍以覆盖索引表,这将使我达到 102kbytes/user 这是真的吗? MySQL 是否还需要考虑其他数据扩展因素,或者 102 KB 是一个不错的估计吗?

除了索引因子(我认为是2)和存储效率(我也认为是2)之外,MySQL中的数据存储还有其他乘数吗?

mysql storage database-engine
2个回答
2
投票

简短回答
大小比 MyISAM 增加 2-3 倍是常见的,4 倍是罕见的。

关于InnODB引擎的一切:
http://dev.mysql.com/doc/refman/5.1/en/innodb-storage-engine.html

InnoDB、MyISAM 和磁盘空间:
http://mysqlha.blogspot.com/2009/01/innodb-myisam-and-disk-space_16.html

MySQL引擎空间使用对比:
第 1 部分:http://marksverbiage.blogspot.com/2008/02/mysql-engines-and-space-usage.html
第 2 部分:http://marksverbiage.blogspot.com/2008/04/mysql-engines-space-usage-comparison.html

这是物理行结构:
http://dev.mysql.com/doc/refman/5.0/en/innodb-physical-record.html

存在很多变数和问题:

  • 索引,记住InnoDB在每个二级索引中都包含PK。
  • 你在收拾钥匙吗(慢)?
  • 表格是否多余?
  • 不要忘记日志(二进制日志、慢查询日志、错误日志......)
  • 是否将行声明为可为空,如果是,则为每行的每个可为空列添加一个额外的字节。
  • 您使用什么字符集?

0
投票

您可以使用这个很酷的应用程序 https://calculatedata.org/ 来计算 SQL 和 NoSQL 数据库的任何模式的数据库存储需求,它非常接近准确,并且对日常需求很有帮助。

© www.soinside.com 2019 - 2024. All rights reserved.