MYSQL - 表大小似乎不正常

时间:2012-12-26 15:43:49

标签: mysql indexing size

我有一个包含这样的架构的表:

id int(10) PK,
fk_id int(10) FK,
c3 int(10),
c4 timestamp,
c5 tinyint(3),
c6 varchar(50) latin1_swedish_ci,
c7 tinyint(3),
c8 tinyint(3),
c9 tinyint(1)

现在这个表有10,000条记录,其大小为1.8 MB,索引大小为0.3 MB,根据MYSQL的说法,数据大小为1.5 MB。

但是c6字段的所有记录都是10或15个字符长度的字符串,如果你计算最大传入大小,它就像这样:

(4 + 4 + 4 + 4 + 1 + 15 + 1 + 1 + 1)* 10000 = 350 KB

但数据大小为1500 KB。现在我很困惑,为什么这张桌子的大小正以高速率增长,并且不知道这种差异的原因。 MYSQL是否可能显示错误的数据大小?或者索引大小和数据大小的错误组合?或任何其他原因?

我真的很困惑,谢谢你的帮助。

1 个答案:

答案 0 :(得分:0)

我建议的第一件事就是优化表格

OPTIMIZE TABLE mytable  

我希望InnoDB会有一些开销,请看这里:

http://dev.mysql.com/doc/refman/5.5/en/innodb-physical-record.html

但没有你指出的那么多。可能是碎片和未使用的空间,特别是如果您经常插入和更新该表。优化表格应该回收这个空间。