PostgreSQL specific model indexesLink para este cabeçalho

The following are PostgreSQL specific indexes available from the django.contrib.postgres.indexes module.

BloomIndexLink para este cabeçalho

class BloomIndex(*expressions, length=None, columns=(), **options)Link para esta definição

Creates a bloom index.

To use this index access you need to activate the bloom extension on PostgreSQL. You can install it using the BloomExtension migration operation.

Provide an integer number of bits from 1 to 4096 to the length parameter to specify the length of each index entry. PostgreSQL’s default is 80.

The columns argument takes a tuple or list of up to 32 values that are integer number of bits from 1 to 4095.

BrinIndexLink para este cabeçalho

class BrinIndex(*expressions, autosummarize=None, pages_per_range=None, **options)Link para esta definição

Creates a BRIN index.

Set the autosummarize parameter to True to enable automatic summarization to be performed by autovacuum.

The pages_per_range argument takes a positive integer.

BTreeIndexLink para este cabeçalho

class BTreeIndex(*expressions, fillfactor=None, **options)Link para esta definição

Creates a B-Tree index.

Provide an integer value from 10 to 100 to the fillfactor parameter to tune how packed the index pages will be. PostgreSQL’s default is 90.

GinIndexLink para este cabeçalho

class GinIndex(*expressions, fastupdate=None, gin_pending_list_limit=None, **options)Link para esta definição

Creates a gin index.

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 BtreeGinExtension migration operation.

Set the fastupdate parameter to False to disable the GIN Fast Update Technique that’s enabled by default in PostgreSQL.

Provide an integer number of kilobytes to the gin_pending_list_limit parameter to tune the maximum size of the GIN pending list which is used when fastupdate is enabled.

GistIndexLink para este cabeçalho

class GistIndex(*expressions, buffering=None, fillfactor=None, **options)Link para esta definição

Creates a GiST index. These indexes are automatically created on spatial fields with spatial_index=True. They’re also useful on other types, such as HStoreField or the range fields.

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 BtreeGistExtension migration operation.

Set the buffering parameter to True or False to manually enable or disable buffering build of the index.

Provide an integer value from 10 to 100 to the fillfactor parameter to tune how packed the index pages will be. PostgreSQL’s default is 90.

HashIndexLink para este cabeçalho

class HashIndex(*expressions, fillfactor=None, **options)Link para esta definição

Creates a hash index.

Provide an integer value from 10 to 100 to the fillfactor parameter to tune how packed the index pages will be. PostgreSQL’s default is 90.

SpGistIndexLink para este cabeçalho

class SpGistIndex(*expressions, fillfactor=None, **options)Link para esta definição

Creates an SP-GiST index.

Provide an integer value from 10 to 100 to the fillfactor parameter to tune how packed the index pages will be. PostgreSQL’s default is 90.

OpClass() expressionsLink para este cabeçalho

class OpClass(expression, name)Link para esta definição

An OpClass() expression represents the expression with a custom operator class that can be used to define functional indexes, functional unique constraints, or exclusion constraints. To use it, you need to add 'django.contrib.postgres' in your INSTALLED_APPS. Set the name parameter to the name of the operator class.

Por exemplo:

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

creates an index on Lower('username') using varchar_pattern_ops.

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

creates a unique constraint on Upper('description') using text_pattern_ops.

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

creates an exclusion constraint on circle using circle_ops.