PostgreSQL-specifika modellindex

Följande är PostgreSQL-specifika indexes tillgängliga från modulen django.contrib.postgres.indexes.

BloomIndex

class BloomIndex(*expressions, length=None, columns=(), **options)[source]

Skapar ett bloom-index.

För att använda denna indexåtkomst måste du aktivera bloom-tillägget på PostgreSQL. Du kan installera den med hjälp av BloomExtension migreringsoperation.

Ge ett heltal antal bitar från 1 till 4096 till parametern length för att ange längden på varje indexpost. PostgreSQL: s standard är 80.

Argumentet columns tar en tupel eller lista med upp till 32 värden som är heltal med antal bitar från 1 till 4095.

BrinIndex

class BrinIndex(*expressions, autosummarize=None, pages_per_range=None, **options)[source]

Skapar ett BRIN-index.

Sätt parametern autosummarize till True för att aktivera automatisk sammanfattning som ska utföras av autovacuum.

Argumentet pages_per_range tar ett positivt heltal.

BTreeIndex

class BTreeIndex(*expressions, fillfactor=None, deduplicate_items=None, **options)[source]

Skapar ett B-Tree-index.

Ge ett heltalsvärde från 10 till 100 till fillfactor-parametern för att ställa in hur packade indexsidorna kommer att vara. PostgreSQL: s standard är 90.

Ge ett boolskt värde till deduplicate_items-parametern för att kontrollera om deduplicering är aktiverad. PostgreSQL aktiverar deduplicering som standard.

Changed in Django 5.1:

Parametern deduplicate_items har lagts till.

GinIndex

class GinIndex(*expressions, fastupdate=None, gin_pending_list_limit=None, **options)[source]

Skapar ett gin-index.

För att använda detta index på datatyper som inte finns i de inbyggda operatörsklasserna <https://www.postgresql.org/docs/current/gin.html#GIN-BUILTIN-OPCLASSES>`_ måste du aktivera btree_gin-tillägget på PostgreSQL. Du kan installera den med hjälp av BtreeGinExtension migreringsoperation.

Ställ in parametern fastupdate till False för att inaktivera GIN Fast Update Technique som är aktiverad som standard i PostgreSQL.

Ange ett heltal i kilobyte i parametern gin_pending_list_limit för att ställa in den maximala storleken på GIN:s väntelista som används när fastupdate är aktiverat.

GistIndex

class GistIndex(*expressions, buffering=None, fillfactor=None, **options)[source]

Skapar ett `GiST-index &lt;https://www.postgresql.org/docs/current/gist.html&gt;`_. Dessa index skapas automatiskt på spatiala fält med spatial_index=True. De är också användbara på andra typer, till exempel HStoreField eller range fields.

För att använda detta index på datatyper som inte finns i de inbyggda gistoperatörsklasserna måste du aktivera btree_gist-tillägget på PostgreSQL. Du kan installera den med hjälp av BtreeGistExtension migreringsoperation.

Sätt parametern buffring till True eller False för att manuellt aktivera eller inaktivera buffring build av indexet.

Ge ett heltalsvärde från 10 till 100 till fillfactor-parametern för att ställa in hur packade indexsidorna kommer att vara. PostgreSQL: s standard är 90.

HashIndex

class HashIndex(*expressions, fillfactor=None, **options)[source]

Skapar ett hashindex.

Ge ett heltalsvärde från 10 till 100 till fillfactor-parametern för att ställa in hur packade indexsidorna kommer att vara. PostgreSQL: s standard är 90.

SpGistIndex

class SpGistIndex(*expressions, fillfactor=None, **options)[source]

Skapar ett SP-GiST-index.

Ge ett heltalsvärde från 10 till 100 till fillfactor-parametern för att ställa in hur packade indexsidorna kommer att vara. PostgreSQL: s standard är 90.

uttryck för OpClass()

class OpClass(expression, name)[source]

Ett OpClass()-uttryck representerar uttrycket med en anpassad operatorklass som kan användas för att definiera funktionella index, funktionella unika begränsningar eller uteslutningsbegränsningar. För att använda det måste du lägga till 'django.contrib.postgres' i din INSTALLED_APPS. Ställ in parametern name till namnet på `operatorklassen`_.

Till exempel:

Index(
    OpClass(Lower("username"), name="varchar_pattern_ops"),
    name="lower_username_idx",
)

skapar ett index på Lower('username') med hjälp av varchar_pattern_ops.

UniqueConstraint(
    OpClass(Upper("description"), name="text_pattern_ops"),
    name="upper_description_unique",
)

skapar en unik begränsning på Upper('description') med hjälp av text_pattern_ops.

ExclusionConstraint(
    name="exclude_overlapping_ops",
    expressions=[
        (OpClass("circle", name="circle_ops"), RangeOperators.OVERLAPS),
    ],
)

skapar en uteslutningsbegränsning på circle med hjälp av circle_ops.