我正在使用Django 1.8和postgresql以及新的hstore字段。 我想对我的hstore字段中的值应用索引。 但是,阅读Postgres的文档后,我感到btree索引并不适合此处情况,因为我的hstore字段中有很多值,所有这些值都指向同一记录。 使用pgAdmin,我注意到如果我在我的hstore字段中添加db_index=True,则会创建一个btree索引。
- 在这种情况下,btree索引是否真的无用? 我不应该使用它吗?
- 我使用原始SQL(嵌入我的迁移文件中)创建了一个gin索引,我想知道这是否足够,我是否需要覆盖我的orm筛选/获取方法,以及这些方法是否可行。
原始SQL类似于:
SELECT * from transaction WHERE ("transaction"."hstorefield" -> 'service_code') = somevalue
jsonb
和PostgreSQL 9.4。我认为hstore
越来越成为一项传统功能。至于索引,我认为你需要展示ORM运行的实际查询。 - Craig Ringer