我的 models.py
中有这个
category = models.CharField(max_length=1024, null=False)
我改成了这样:
category = models.CharField(max_length=256, null=False)
迁移成功。
然后我把它改成这样:
category = models.CharField(max_length=256, null=False, db_index=True)
在迁移时我得到了这个:
_mysql_exceptions.警告:指定的键太长;最大 key 长度为 767 字节
和迁移中断。
然而,当我打开 phpmyadmin 面板时,我看到索引已经创建。
我应该关心吗?我应该做些什么来避免这个警告吗?这个警告重要吗?
编辑:字段排序规则是 utf8_general_ci
最佳答案
根据 MySQL 5.6 文档:Limits on InnoDB Tables
默认情况下,单列索引的索引键最大可达 767 字节。相同的长度限制适用于任何索引键前缀。
当您尝试指定比允许长度更长的索引前缀长度时,长度会自动减少到非唯一索引的最大长度。
对于唯一索引,超过索引前缀限制会产生错误。为避免此类复制配置错误,如果无法在从属服务器上也设置 innodb_large_prefix 选项,请避免在主服务器上设置 innodb_large_prefix 选项,并且从属服务器具有可能受此限制影响的唯一索引。
关于python - Django ,南 : I get a warning with key length while indexing,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19723757/