PostgreSQL 特有模型索引
以下是 PostgreSQL 特有的 索引 可以从 django.contrib.postgres.indexes
模块中获得。
BloomIndex
class BloomIndex
(\expressions, length=None, columns=(), **options*)
New in Django 3.1.
创建一个 bloom 索引。
要使用这个索引访问,你需要激活 PostgreSQL 上的 bloom 扩展。你可以使用 BloomExtension
迁移操作来安装它。
为 length
参数提供一个从 1 到 4096 的整数位,用于指定每个索引条目的长度。PostgreSQL 的默认值是 80。
columns
参数取一个元组或最多 32 个值的列表,这些值是 1 到 4095 的整数位。
Changed in Django Development version:
Positional argument *expressions
was added in order to support functional indexes.
BrinIndex
class BrinIndex
(\expressions, autosummarize=None, pages_per_range=None, **options*)
创建一个 BRIN 索引 。
将 autosummarize
参数设置为 True
,启用 autovacuum 进行 自动汇总 。
pages_per_range
参数取一个正整数。
Changed in Django Development version:
Positional argument *expressions
was added in order to support functional indexes.
BTreeIndex
class BTreeIndex
(\expressions, fillfactor=None, **options*)
创建一个 B 树索引。
为 fillfactor 参数提供一个从 10 到 100 的整数值,以调整索引页的打包程度。PostgreSQL 的默认值是 90。
Changed in Django Development version:
Positional argument *expressions
was added in order to support functional indexes.
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 参数提供一个整数字节数,以调整 GIN 待定列表的最大大小,当 fastupdate
启用时使用。
Changed in Django Development version:
Positional argument *expressions
was added in order to support functional indexes.
GistIndex
class GistIndex
(\expressions, buffering=None, fillfactor=None, **options*)
创建一个 GiST 索引 。这些索引在空间字段上会自动创建 spatial_index=True
。它们在其他类型上也很有用,比如 HStoreField
或者 range fields。
要在不在内置的 gist 操作类 的数据类型上使用这个索引,需要在 PostgreSQL 上激活 btree_gist 扩展 。你可以使用 BtreeGistExtension
迁移操作来安装它。
将 buffering
参数设置为 True
或 False
,手动启用或禁用索引的 buffering build 。
为 fillfactor 参数提供一个从 10 到 100 的整数值,以调整索引页的打包程度。PostgreSQL 的默认值是 90。
Changed in Django Development version:
Positional argument *expressions
was added in order to support functional indexes.
HashIndex
class HashIndex
(\expressions, fillfactor=None, **options*)
创建一个哈希索引。
为 fillfactor 参数提供一个从 10 到 100 的整数值,以调整索引页的打包程度。PostgreSQL 的默认值是 90。
只在 PostgreSQL 10 及以后的版本中使用此索引。
哈希索引在 PostgreSQL 中已经存在很长时间了,但在旧版本中,哈希索引存在一些数据完整性问题。
Changed in Django Development version:
Positional argument *expressions
was added in order to support functional indexes.
SpGistIndex
class SpGistIndex
(\expressions, fillfactor=None, **options*)
创建 SP-GIST 索引 。
为 fillfactor 参数提供一个从 10 到 100 的整数值,以调整索引页的打包程度。PostgreSQL 的默认值是 90。
Changed in Django Development version:
Positional argument *expressions
was added in order to support functional indexes.
OpClass()
expressions
New in Django Development version.
class OpClass
(expression, name)
An OpClass()
expression represents the expression
with a custom operator class that can be used to define functional indexes. To use it, you need to add 'django.contrib.postgres'
in your INSTALLED_APPS
. Set the name
parameter to the name of the operator class.
例子:
Index(
OpClass(Lower('username'), name='varchar_pattern_ops'),
name='lower_username_idx',
)
creates an index on Lower('username')
using varchar_pattern_ops
.