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 上に排他制約を作成します。

Back to Top