【发布时间】:2013-11-12 11:26:09
【问题描述】:
我的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.Warning: Specified key was too long; max key length is 767 bytes
迁移中断。
但是,当我打开 phpmyadmin 面板时,我看到索引已创建。
我应该关心吗?我应该做些什么来避免这个警告吗?这个警告重要吗?
编辑:字段排序规则是utf8_general_ci
【问题讨论】:
-
为什么需要一个长度为 256 位的索引?
-
有点奇怪。
-
10^256 没有。的索引将由 256 位生成。您确定可以生成这么多数据吗?尝试更现实一点,这会浪费内存。而且这也不是一个好习惯。此链接可能会进一步帮助您。 stackoverflow.com/questions/4547479/…
-
您使用哪种引擎? innodb 还是 myisam?
-
@xpanta 因为这是警告而不是错误。仍然仅为该列的前 767 个字节创建索引。
标签: python mysql django django-south