PostgreSQL 特定模型索引 — Django 文档
PostgreSQL 特定的模型索引
以下是 PostgreSQL 特定的 索引 ,可从 django.contrib.postgres.indexes
模块获得。
BloomIndex
- class BloomIndex(*expressions, length=None, columns=(), **options)
3.1 版中的新功能。
创建 bloom 索引。
要使用此索引访问,您需要激活 PostgreSQL 上的 bloom 扩展。 您可以使用 BloomExtension 迁移操作安装它。
向
length
参数提供从 1 到 4096 的整数位,以指定每个索引条目的长度。 PostgreSQL 的默认值为 80。columns
参数采用最多 32 个值的元组或列表,这些值是从 1 到 4095 的整数位。在 3.2 版更改:添加了 位置参数
*expressions
以支持功能索引。
BrinIndex
- class BrinIndex(*expressions, autosummarize=None, pages_per_range=None, **options)
创建 BRIN 索引 。
将
autosummarize
参数设置为True
,使自动汇总由autovacuum执行。pages_per_range
参数采用正整数。在 3.2 版更改:添加了 位置参数
*expressions
以支持功能索引。
BTreeIndex
- class BTreeIndex(*expressions, fillfactor=None, **options)
创建 B 树索引。
为 fillfactor 参数提供一个从 10 到 100 的整数值,以调整索引页面的打包方式。 PostgreSQL 的默认值为 90。
在 3.2 版更改:添加了 位置参数
*expressions
以支持功能索引。
GinIndex
- class GinIndex(*expressions, fastupdate=None, gin_pending_list_limit=None, **options)
创建 gin 索引 。
要在不在 内置运算符类 中的数据类型上使用此索引,您需要在 PostgreSQL 上激活 btree_gin 扩展 。 您可以使用 BtreeGinExtension 迁移操作安装它。
将
fastupdate
参数设置为False
以禁用在 PostgreSQL 中默认启用的 GIN 快速更新技术 。为 gin_pending_list_limit 参数提供整数字节以调整启用
fastupdate
时使用的 GIN 挂起列表的最大大小。在 3.2 版更改:添加了 位置参数
*expressions
以支持功能索引。
GistIndex
- class GistIndex(*expressions, buffering=None, fillfactor=None, **options)
创建 GiST 索引 。 这些索引是在 spatial_index=True 的空间字段上自动创建的。 它们也可用于其他类型,例如 HStoreField 或 范围字段 。
要对不在内置 gist 运算符类 中的数据类型使用此索引,您需要在 PostgreSQL 上激活 btree_gist 扩展 。 您可以使用 BtreeGistExtension 迁移操作安装它。
将
buffering
参数设置为True
或False
以手动启用或禁用索引的 缓冲构建 。为 fillfactor 参数提供一个从 10 到 100 的整数值,以调整索引页面的打包方式。 PostgreSQL 的默认值为 90。
在 3.2 版更改:添加了 位置参数
*expressions
以支持功能索引。
HashIndex
- class HashIndex(*expressions, fillfactor=None, **options)
创建哈希索引。
为 fillfactor 参数提供一个从 10 到 100 的整数值,以调整索引页面的打包方式。 PostgreSQL 的默认值为 90。
仅在 PostgreSQL 10 及更高版本上使用此索引
哈希索引在 PostgreSQL 中已经存在很长时间了,但它们在旧版本中存在许多数据完整性问题。
在 3.2 版更改:添加了 位置参数
*expressions
以支持功能索引。
SpGistIndex
- class SpGistIndex(*expressions, fillfactor=None, **options)
创建 SP-GiST 索引 。
为 fillfactor 参数提供一个从 10 到 100 的整数值,以调整索引页面的打包方式。 PostgreSQL 的默认值为 90。
在 3.2 版更改:添加了 位置参数
*expressions
以支持功能索引。
OpClass() 表达式
3.2 版中的新功能。
- class OpClass(expression, name)
OpClass()
表达式表示具有自定义 运算符类 的expression
,可用于定义功能索引。 要使用它,您需要在 :setting:`INSTALLED_APPS` 中添加'django.contrib.postgres'
。 将name
参数设置为 运算符类 的名称。例如:
Index( OpClass(Lower('username'), name='varchar_pattern_ops'), name='lower_username_idx', )
使用
varchar_pattern_ops
在Lower('username')
上创建索引。