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 index を作成します。 - 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 です。 - deduplicate_items パラメータに真偽値を指定して、重複排除が有効かどうかを制御します。PostgreSQLでは、重複排除はデフォルトで有効になっています。 Changed in Django 5.1:- deduplicate_itemsパラメータが追加されました。
GinIndex¶
- class GinIndex(*expressions, fastupdate=None, gin_pending_list_limit=None, **options)[ソース]¶
- gin インデックス を作成します。 - To use this index on data types not in the built-in operator classes, you need to activate the btree_gin extension on PostgreSQL. You can install it using the - BtreeGinExtensionmigration operation.- 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や 範囲フィールド など他のタイプでも有用です。- To use this index on data types not in the built-in gist operator classes, you need to activate the btree_gist extension on PostgreSQL. You can install it using the - BtreeGistExtensionmigration operation.- インデックスの 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上に排他制約を作成します。
 
          