如何在 django 中指定索引类型? (btree 与哈希等)
Posted
技术标签:
【中文标题】如何在 django 中指定索引类型? (btree 与哈希等)【英文标题】:How do I specify type of index in django? (btree vs hash, etc) 【发布时间】:2017-12-20 21:34:47 【问题描述】:正如标题所说,如何在 django 中的模型中的字段上指定我想要的索引类型。
class Person:
...
age = models.IntegerField(db_index=True)
但是现在呢?如何确保它是 btree
索引而不是 hash
。或者这一切都是为我们自动完成的,django 使用一些大表来选择“最佳索引类型”
【问题讨论】:
django 不能满足你的这个愿望,这取决于你的数据库默认索引是什么,当你在模型中设置 db_index=true 时使用默认索引 @Exprator 你知道有什么好的资源可以为mysql中的每个字段类型提供默认索引类型吗? 对一个项目进行一个索引,否则如果对所有字段和表进行不同的索引,就会出现问题 【参考方案1】:只要你指定index=True
,Django 就会默认创建btree
索引:
https://docs.djangoproject.com/en/1.11/ref/models/indexes/
我注意到您使用的是 MySQL;但如果您使用的是 PostgreSQL,则可以在某些类型的字段上指定某些其他索引类型:
https://docs.djangoproject.com/en/1.11/ref/contrib/postgres/indexes/
此答案提供了有关如何在 MySQL 中覆盖 btree
默认值的信息,如果您需要:
https://***.com/a/3288059/1394697
【讨论】:
以上是关于如何在 django 中指定索引类型? (btree 与哈希等)的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Django 的设置文件中指定多个“init_command”