PostgreSQL 特定的模型索引¶
以下是从 django.contrib.postgres.indexes
模块中获取的 PostgreSQL 特定的 索引。
BloomIndex
¶
-
class
BloomIndex
(*expressions, length=None, columns=(), **options)¶ 创建 bloom 索引。
要使用此索引访问,您需要在 PostgreSQL 上激活 bloom 扩展。您可以使用
BloomExtension
迁移操作进行安装。向
length
参数提供 1 到 4096 之间的整数位数,以指定每个索引项的长度。PostgreSQL 的默认值为 80。columns
参数采用一个元组或列表,其中最多包含 32 个值,这些值是 1 到 4095 之间的整数位数。
BrinIndex
¶
BTreeIndex
¶
GinIndex
¶
-
类
GinIndex
(*表达式, 快速更新=无, gin 挂起列表限制=无, **选项)¶ 创建一个 gin 索引。
要在不属于 内置运算符类 中的数据类型上使用此索引,需要在 PostgreSQL 上激活 btree_gin 扩展。可以使用
BtreeGinExtension
迁移操作进行安装。将
fastupdate
参数设置为False
以禁用 PostgreSQL 中默认启用的 GIN 快速更新技术。向 gin_pending_list_limit 参数提供一个以千字节为单位的整数,以调整当
fastupdate
启用时使用的 GIN 挂起列表的最大大小。
GistIndex
¶
-
类
GistIndex
(*表达式, 缓冲=无, 填充因子=无, **选项)¶ 创建一个 GiST 索引。这些索引会在空间字段上使用
spatial_index=True
自动创建。它们在其他类型上也很有用,例如HStoreField
或 范围字段。要在内置 gist 运算符类 中没有的数据类型上使用此索引,您需要在 PostgreSQL 上激活 btree_gist 扩展。您可以使用
BtreeGistExtension
迁移操作来安装它。将
buffering
参数设置为True
或False
以手动启用或禁用索引的 缓冲构建。向 填充因子 参数提供一个 10 到 100 之间的整数,以调整索引页面的填充程度。PostgreSQL 的默认值为 90。
HashIndex
¶
SpGistIndex
¶
-
class
SpGistIndex
(*expressions, fillfactor=None, **options)¶ 创建一个 SP-GiST 索引。
向 填充因子 参数提供一个 10 到 100 之间的整数,以调整索引页面的填充程度。PostgreSQL 的默认值为 90。
OpClass()
表达式¶
-
class
OpClass
(expression, name)¶ 一个
OpClass()
表达式表示具有自定义 运算符类 的expression
,该运算符类可用于定义函数索引、函数唯一约束或排除约束。要使用它,您需要在INSTALLED_APPS
中添加'django.contrib.postgres'
。将name
参数设置为 运算符类 的名称。例如
Index( OpClass(Lower("username"), name="varchar_pattern_ops"), name="lower_username_idx", )
使用
varchar_pattern_ops
在Lower('username')
上创建一个索引。UniqueConstraint( OpClass(Upper("description"), name="text_pattern_ops"), name="upper_description_unique", )
使用
text_pattern_ops
在Upper('description')
上创建唯一约束。ExclusionConstraint( name="exclude_overlapping_ops", expressions=[ (OpClass("circle", name="circle_ops"), RangeOperators.OVERLAPS), ], )
使用
circle_ops
在circle
上创建排除约束。