【问题标题】:How do I specify type of index in django? (btree vs hash, etc)如何在 django 中指定索引类型? (btree 与哈希等)
【发布时间】:2017-12-20 21:34:47
【问题描述】:

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

class Person:
     ...
     age = models.IntegerField(db_index=True)

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

【问题讨论】:

  • django 不能满足你的这个愿望,这取决于你的数据库默认索引是什么,当你在模型中设置 db_index=true 时使用默认索引
  • @Exprator 你知道有什么好的资源可以为mysql中的每个字段类型提供默认索引类型吗?
  • 对一个项目进行一个索引,否则如果对所有字段和表进行不同的索引,就会出现问题

标签: mysql django django-models models


【解决方案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://stackoverflow.com/a/3288059/1394697

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多