我有一个应用程序数据库,其中有一个用户表(每个用户 1kbyte 的数据,基于计数字段 * typelength),以及属于一个用户的大约 100 个相同大小的事物(每个事物 0.5kbyte),并且它位于“用户”表和“事物”表。
这似乎会导致每个用户产生大约 51kbyte 的数据。但是,我听说对于 MySQL,我应该将其加倍以覆盖索引表,这将使我达到 102kbytes/user 这是真的吗? MySQL 是否还需要考虑其他数据扩展因素,或者 102 KB 是一个不错的估计吗?
除了索引因子(我认为是2)和存储效率(我也认为是2)之外,MySQL中的数据存储还有其他乘数吗?
简短回答
大小比 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
存在很多变数和问题:
您可以使用这个很酷的应用程序 https://calculatedata.org/ 来计算 SQL 和 NoSQL 数据库的任何模式的数据库存储需求,它非常接近准确,并且对日常需求很有帮助。