如何在 Django 中指定索引类型?(btree vs hash 等)

Ala*_*ACK 4 mysql django django-models models

就像标题所说的那样,如何在 django 中的模型中的字段上指定我想要的索引类型。

class Person:
     ...
     age = models.IntegerField(db_index=True)
Run Code Online (Sandbox Code Playgroud)

但是现在呢?如何确保它是btree索引而不是hash. 或者这一切都是为我们自动完成的,django 使用一些大表来选择“最佳索引类型”

Fli*_*rPA 5

btree每当您指定时,Django 默认创建索引index=True

https://docs.djangoproject.com/en/1.11/ref/models/indexes/

我注意到你正在使用 MySQL;但是如果你使用 PostgreSQL,你可以在某些类型的字段上指定某些其他索引类型:

https://docs.djangoproject.com/en/1.11/ref/contrib/postgres/indexes/

btree如果您需要,此答案提供了有关如何覆盖MySQL 中的默认值的信息:

/sf/answers/230164161/