以下はPostgreSQL固有の django.contrib.postgres.indexes モジュールから利用可能な インデックス です。
BloomIndex¶BloomIndex(*expressions, length=None, columns=(), **options)¶bloom インデックスを作成します。
このインデックスアクセスを使用するには、PostgreSQLで bloom 拡張機能を有効にする必要があります。これは、 BloomExtension マイグレーションオペレーションを使用してインストールできます。
length パラメータには、1 から 4096 の整数のビット数を指定して、各インデックスエントリの長さを指定してください。PostgreSQL のデフォルト値は 80 です。
columns 引数は、1から4095までの整数ビットで、最大32個の値を持つタプルまたはリストを取ります。
BrinIndex¶BrinIndex(*expressions, autosummarize=None, pages_per_range=None, **options)¶BRIN インデックス を作成します。
autosummarize パラメータを True に設定すると、autovacuum による automatic summarization を有効にできます。
pages_per_range 引数は正の整数を取ります。
BTreeIndex¶BTreeIndex(*expressions, fillfactor=None, **options)¶B-Tree インデックスを作成します。
fillfactor パラメータには、インデックスページがどれだけ詰め込まれるかを調整するために、10 から 100 の整数値を指定してください。PostgreSQL のデフォルト値は 90 です。
GinIndex¶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¶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¶HashIndex(*expressions, fillfactor=None, **options)¶ハッシュインデックスを作成します。
fillfactor パラメータには、インデックスページがどれだけ詰め込まれるかを調整するために、10 から 100 の整数値を指定してください。PostgreSQL のデフォルト値は 90 です。
SpGistIndex¶SpGistIndex(*expressions, fillfactor=None, **options)¶SP-GiST インデックス を作成します。
fillfactor パラメータには、インデックスページがどれだけ詰め込まれるかを調整するために、10 から 100 の整数値を指定してください。PostgreSQL のデフォルト値は 90 です。
OpClass() 式¶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 上に排他制約を作成します。
8月 06, 2024