PostgreSQL 固有のモデルインデックス¶
以下はPostgreSQL固有の django.contrib.postgres.indexes
モジュールから利用可能な インデックス です。
BloomIndex
¶
- class BloomIndex(*expressions, length=None, columns=(), **options)[ソース]¶
bloom インデックスを作成します。
このインデックスアクセスを使用するには、PostgreSQLで bloom 拡張機能を有効にする必要があります。これは、
BloomExtension
マイグレーションオペレーションを使用してインストールできます。length
パラメータには、1 から 4096 の整数のビット数を指定して、各インデックスエントリの長さを指定してください。PostgreSQL のデフォルト値は 80 です。columns
引数は、1から4095までの整数ビットで、最大32個の値を持つタプルまたはリストを取ります。
BrinIndex
¶
- class BrinIndex(*expressions, autosummarize=None, pages_per_range=None, **options)[ソース]¶
BRIN インデックス を作成します。
autosummarize
パラメータをTrue
に設定すると、autovacuum による automatic summarization を有効にできます。pages_per_range
引数は正の整数を取ります。
BTreeIndex
¶
- class BTreeIndex(*expressions, fillfactor=None, deduplicate_items=None, **options)[ソース]¶
B-Tree インデックスを作成します。
fillfactor パラメータには、インデックスページがどれだけ詰め込まれるかを調整するために、10 から 100 の整数値を指定してください。PostgreSQL のデフォルト値は 90 です。
Provide a boolean value to the deduplicate_items parameter to control whether deduplication is enabled. PostgreSQL enables deduplication by default.
Changed in Django 5.1:The
deduplicate_items
parameter was added.
GinIndex
¶
- class GinIndex(*expressions, fastupdate=None, gin_pending_list_limit=None, **options)[ソース]¶
gin インデックス を作成します。
組み込みの演算子クラス 以外のデータ型でこのインデックスを使用するには、 PostgreSQL で btree_gin 拡張 を有効にする必要があります。これをインストールするには
BtreeGinExtension
というマイグレーションオペレーションを使用します。fastupdate
パラメータをFalse
に設定すると、PostgreSQL でデフォルトで有効になっている GIN Fast Update Technique を無効にできます。fastupdate
が有効な場合に使用される GIN 保留リストの最大サイズを調整するには、 gin_pending_list_limit パラメータに整数キロバイト数を指定します。
GistIndex
¶
- class GistIndex(*expressions, buffering=None, fillfactor=None, **options)[ソース]¶
GiSTインデックス を作成します。これらのインデックスは、
spatial_index=True
で指定された空間フィールドに自動的に作成されます。これらは、HStoreField
や 範囲フィールド など他のタイプでも有用です。組み込みの gist 演算子クラス 以外のデータ型でこのインデックスを使用するには、 PostgreSQL で btree_gist 拡張 を有効にする必要があります。これをインストールするには
BtreeGistExtension
というマイグレーションオペレーションを使用します。インデックスの buffering build を手動で有効または無効にするには、
buffering
パラメータをTrue
またはFalse
に設定してください。fillfactor パラメータには、インデックスページがどれだけ詰め込まれるかを調整するために、10 から 100 の整数値を指定してください。PostgreSQL のデフォルト値は 90 です。
HashIndex
¶
- class HashIndex(*expressions, fillfactor=None, **options)[ソース]¶
ハッシュインデックスを作成します。
fillfactor パラメータには、インデックスページがどれだけ詰め込まれるかを調整するために、10 から 100 の整数値を指定してください。PostgreSQL のデフォルト値は 90 です。
SpGistIndex
¶
- class SpGistIndex(*expressions, fillfactor=None, **options)[ソース]¶
SP-GiST インデックス を作成します。
fillfactor パラメータには、インデックスページがどれだけ詰め込まれるかを調整するために、10 から 100 の整数値を指定してください。PostgreSQL のデフォルト値は 90 です。
OpClass()
式¶
- class OpClass(expression, name)[ソース]¶
OpClass()
式は、機能インデックス、機能ユニーク制約、または除外制約を定義するために使用できるカスタム operator class と一緒に表すexpression
を表します。これを使用するには、INSTALLED_APPS
に'django.contrib.postgres'
を追加する必要があります。name
パラメータを operator class の名前に設定します。例:
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", )
Upper('description')
を使ってtext_pattern_ops
を使用してユニーク制約を作成します:ExclusionConstraint( name="exclude_overlapping_ops", expressions=[ (OpClass("circle", name="circle_ops"), RangeOperators.OVERLAPS), ], )
これは
circle_ops
を使用してcircle
上に排他制約を作成します。