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
參數設定為True
或False
,以手動啟用或停用索引的 緩衝建構。將 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_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
上建立排除約束。