我有一个要搜索的文章数据库。我一直在使用普通的 Django ORM 进行搜索,这变得越来越慢,然后我对 Django 有了一些了解Indexes
。我正在使用MySQL
,现在我知道使用 MYSQL 我无法将索引字段放入我所面临的堆栈问题中TextField
描述的此处。但是在我的情况下,我无法将其更改为CharField
.
我正在阅读 MyQSL Docs 里面说
MySQL 不能索引 LONGTEXT 列在 key 部分上没有前缀长度,并且在功能 key 部分中不允许前缀长度。
因此我的理解是,由于TextField
在 Django 中是LONGTEXT
用于 MYSQL 的,所以我在这里遇到了这个Django-MySQL
包,并认为如果我可以使用这个包更改LONGTEXT
为MEDIUMTEXT
使用这个包,这可能会得到解决。所以我更新的模型我这样做了
class MyModel(Model):
........
document = SizedTextField(size_class=3)
但是,我在申请时仍然看到相同的错误python manage.py makemigrations
django.db.utils.OperationalError: (1170, "BLOB/TEXT column 'document' used in key specification without a key length")
我该如何解决这个问题?