由于Postgres 10正确支持哈希索引,我想使用哈希索引进行id查找(哈希索引的大小比btree小,理论上更快).
我有一张桌子
create table t (id int);
create unique index on t using hash (id);
Run Code Online (Sandbox Code Playgroud)
但我得到以下内容:
ERROR: access method "hash" does not support unique indexes
为什么哈希索引不允许唯一约束?有办法绕过这个吗?
如https://docs.djangoproject.com/en/1.10/ref/models/fields/#django.db.models.Field.db_index中所述,您可以使用 向表添加索引db_index=True。但是如何强制使用 hash 索引和 btree 索引呢?
就像标题所说的那样,如何在 django 中的模型中的字段上指定我想要的索引类型。
class Person:
...
age = models.IntegerField(db_index=True)
Run Code Online (Sandbox Code Playgroud)
但是现在呢?如何确保它是btree索引而不是hash. 或者这一切都是为我们自动完成的,django 使用一些大表来选择“最佳索引类型”