1

我有一个包含列、一个小整数、一个整数和两个浮点数的表。每行的预期内存为 14 字节 (2+4+2*4)。我的表中有大约 700,000 行。我没有设置主键和索引。MyIsam 类型占用大约 10MB(每行平均 15b),而 InnoDB 类型占用超过 30Mb(平均 44b)。我在这里想念什么?InnoDB 是否会对每一行产生如此多的开销,或者表状态编号是否不可信。我需要存储将运行到 GB 的数据,因此需要通过权衡不同的参数来决定存储类型。

4

1 回答 1

0

与 MyISAM 相比,InnoDB 表确实占用更多空间。存储使用和 InnoDB 提供的功能(崩溃安全、事务和外键)之间的权衡是否有利于 InnoDB 是您必须决定的事情。我自己从 MyISAM 切换到 InnoDB,我不会回去。

值得注意的是,如果你打算继续使用 InnoDB,你肯定会想要定义一个主键(最好是一个短键)。这是由于 InnoDB 对存储和其他索引的行为方式。请参阅此页面

于 2010-09-25T16:52:50.683 回答