存储引擎 InnoDB 存储相同的数据需要的空间比 MyISAM 大,这是大家都知道的,因为MyISAM对数据进行了压缩。
但是今天我看到了一个奇怪的现象,相同的表,相同的数据,InnoDB占用的存储空间比MyISAM竟然要小。
创建一个表
CREATE TABLE `zf1` (
`id` int(11) NOT NULL,
`c` char(120) NOT NULL DEFAULT ''
) ENGINE=InnoDB
<

本文探讨了在特定情况下,InnoDB存储引擎的表占用空间可能少于MyISAM的情况。这主要是由于InnoDB在处理CHAR字段时,对于空值不分配空间,而MyISAM在rows_format为fixed时,即使字段为空也会分配空间。当字段类型改为VARCHAR,或者将CHAR字段的rows_format设置为dynamic,或者填充非空值时,MyISAM的表大小又会变得较小。
最低0.47元/天 解锁文章
1108

被折叠的 条评论
为什么被折叠?



