PostgreSQL 特定模型索引

以下是可從 django.contrib.postgres.indexes 模組取得的 PostgreSQL 特定索引

BloomIndex

class BloomIndex(*expressions, length=None, columns=(), **options)[原始碼]

建立一個 bloom 索引。

要使用此索引存取,您需要在 PostgreSQL 上啟用 bloom 擴充功能。您可以使用 BloomExtension 遷移操作來安裝它。

將 1 到 4096 的整數位元數提供給 length 參數,以指定每個索引條目的長度。PostgreSQL 的預設值為 80。

columns 引數接受最多 32 個值的 tuple 或列表,這些值是 1 到 4095 的整數位元數。

BrinIndex

class BrinIndex(*expressions, autosummarize=None, pages_per_range=None, **options)[原始碼]

建立一個 BRIN 索引

autosummarize 參數設定為 True 以啟用 autovacuum 執行的自動摘要

pages_per_range 引數接受一個正整數。

BTreeIndex

class BTreeIndex(*expressions, fillfactor=None, deduplicate_items=None, **options)[原始碼]

建立一個 B 樹索引。

將 10 到 100 的整數值提供給 fillfactor 參數,以調整索引頁面的封裝程度。PostgreSQL 的預設值為 90。

將布林值提供給 deduplicate_items 參數,以控制是否啟用重複資料刪除。PostgreSQL 預設啟用重複資料刪除。

在 Django 5.1 中變更

新增了 deduplicate_items 參數。

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 時使用。

GistIndex

class GistIndex(*expressions, buffering=None, fillfactor=None, **options)[原始碼]

建立一個 GiST 索引。這些索引會自動在具有 spatial_index=True 的空間欄位上建立。它們在其他類型(例如 HStoreField範圍欄位)上也很有用。

要在不在內建 gist 運算子類別中的資料類型上使用此索引,您需要在 PostgreSQL 上啟用 btree_gist 擴充功能。您可以使用 BtreeGistExtension 遷移操作來安裝它。

buffering 參數設定為 TrueFalse,以手動啟用或停用索引的 緩衝建構

將 10 到 100 的整數值提供給 fillfactor 參數,以調整索引頁面的封裝程度。PostgreSQL 的預設值為 90。

HashIndex

class HashIndex(*expressions, fillfactor=None, **options)[原始碼]

建立一個雜湊索引。

將 10 到 100 的整數值提供給 fillfactor 參數,以調整索引頁面的封裝程度。PostgreSQL 的預設值為 90。

SpGistIndex

class SpGistIndex(*expressions, fillfactor=None, **options)[原始碼]

建立一個 SP-GiST 索引

將 10 到 100 的整數值提供給 fillfactor 參數,以調整索引頁面的封裝程度。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_opsLower('username') 上建立索引。

UniqueConstraint(
    OpClass(Upper("description"), name="text_pattern_ops"),
    name="upper_description_unique",
)

會使用 text_pattern_opsUpper('description') 上建立唯一約束。

ExclusionConstraint(
    name="exclude_overlapping_ops",
    expressions=[
        (OpClass("circle", name="circle_ops"), RangeOperators.OVERLAPS),
    ],
)

會使用 circle_opscircle 上建立排除約束。

返回頂部