1

我使用 MySQL5.1.61 和 utf8 作为编码。我有两个 varchar(255) 列。当我尝试在两列上创建索引时遇到错误“指定的键太长;最大键长度为 1000 字节”。我搜索了许多堆栈,上面说 utf8 需要 3 个字节来表示一个字符。我的问题是它在 Windows7 上运行良好,但在 linux 上运行良好。我需要检查一些特殊配置吗?提前致谢。

============================编辑:我得到了答案================ ==================

它接缝了自 5.5.14 以来引入的 innodb_large_prefix 的新选项。默认情况下,单列索引的索引键最长可达 767 字节。相同的长度限制适用于任何索引键前缀。当启用 innodb_large_prefix 配置选项时,对于使用 DYNAMIC 和 COMPRESSED 行格式的 InnoDB 表,此长度限制会提高到 3072 字节。当您尝试指定比允许的更长的索引前缀长度时,该长度会静默减少到最大长度。

它在升级到 5.5.22 后工作

4

0 回答 0