python - Django ,南 : I get a warning with key length while indexing

标签 python mysql django django-south

我的 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/

相关文章:

mysql - 将mysql文件加载到AWS中的rds数据库

php - 使用 php mysql 向多个收件人发送唯一的电子邮件内容

python - 循环父外键

python - 如何正确安装Open edX电子商务服务?

python - 如何使用 C Python API 从 C 注入(inject) Python 中的可捕获异常?

python - 连接多个数据帧时保留原始分类映射

python - 在Python中调用GDL脚本

php - 在 PHP 中读取包含一些荷兰语或法语字符的 CSV/Excel 文件

python - 我想用 Django 响应图像

python - 从 numpy 矩阵中查找值列表的行索引