MySQL 错误 #1071:了解密钥长度限制
尝试向具有特定列(column1 和 column2)的表添加唯一索引时),用户可能会遇到以下错误:
#1071 - Specified key was too long; max key length is 767 bytes
虽然最初看起来column1(20)和column2(500)的总长度在最大键长度767字节之内,实际解释在于理解MySQL的前缀索引限制。
在5.7之前的MySQL版本中,InnoDB表有一个前缀索引限制为 767 字节,而 MyISAM 表的限制更大,为 1,000 字节。这意味着索引使用的最大字节数基于索引中包含的列的起始部分。
在给定的示例中,column1 和 column2 都是 VARCHAR(x) 列,存储可变长度字符串。发生该错误的原因是 MySQL 将列的整个长度视为索引的一部分,而不仅仅是存储的实际数据。因此,即使column1和column2中的实际数据比分配的总长度短,索引大小也会超出最大限制。
为了避免此错误,用户有几种选择:
了解列长度对索引大小的影响对于避免 MySQL 键长度错误至关重要。通过仔细管理列大小和索引定义,用户可以在不超出数据库限制的情况下成功实施索引并维护数据完整性。
以上是为什么我会收到 MySQL 错误 #1071:指定的键太长?的详细内容。更多信息请关注PHP中文网其他相关文章!