假设数据是相同的,那么VARCHAR的最大长度是否会影响辅助索引的空间使用率? InnoDB对索引使用固定长度logging吗?
假设我们正在谈论MySQL 5.1,并使用InnoDB COMPRESSED表格格式,并且所讨论的字段被定义为一个长度小于或等于255的VARCHAR(所以它只使用一个字节作为偏移量)。
这是用例:
我有一个非常大的表(几千兆字节)的服务器。 其中一个字段是VARCHAR(7)。 我们需要一点时间,我们正在考虑把它做成VARCHAR(255),但是我们担心它膨胀了索引。
不,innodb在二级索引中使用时不能完全展开varchar字段。
Yves Trudeau从几年前就有了一篇很好的博客文章,通过使用innodb恢复工具挖掘innodb页面,明确地certificate了这一点: http : //www.bigdbahead.com/? p=150