MySQL数据库大小估计

Jay*_*dse 6 mysql storage database-engine

我有一个应用程序数据库,其中包含一个用户表(基于计数字段*typelength的每个用户1kbyte数据),以及属于用户的大约100个相同大小的内容(每件事物0.5千字节),并且它位于"用户"中"表和"事物"表.

这似乎会导致每个用户大约51千字节的数据.但是,我听说对于MySQL,我应该加倍覆盖索引表,这会让我达到102kbytes/user这是真的吗?是否有任何其他数据扩展因素需要考虑MySQL,或者是一个好的估计是102千字节?

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

Joh*_*ica 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。
  • 你在收拾钥匙吗(慢)?
  • 该表是否多余?
  • 不要忘记日志(二进制日志、慢查询日志、错误日志......)
  • 行是否声明为可为空,如果是,则为每行的每个可为空列添加一个额外的字节。
  • 你使用什么字符集?