PostgreSQL specific model indexesLink to this heading
The following are PostgreSQL specific indexes
available from the django.contrib.postgres.indexes module.
BloomIndexLink to this heading
- class BloomIndex(*expressions, length=None, columns=(), **options)Link to this definition
Creates a bloom index.
To use this index access you need to activate the bloom extension on PostgreSQL. You can install it using the
BloomExtensionmigration operation.Provide an integer number of bits from 1 to 4096 to the
lengthparameter to specify the length of each index entry. PostgreSQL’s default is 80.The
columnsargument takes a tuple or list of up to 32 values that are integer number of bits from 1 to 4095.
BrinIndexLink to this heading
- class BrinIndex(*expressions, autosummarize=None, pages_per_range=None, **options)Link to this definition
Creates a BRIN index.
Set the
autosummarizeparameter toTrueto enable automatic summarization to be performed by autovacuum.The
pages_per_rangeargument takes a positive integer.
BTreeIndexLink to this heading
- class BTreeIndex(*expressions, fillfactor=None, **options)Link to this definition
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 to this heading
- class GinIndex(*expressions, fastupdate=None, gin_pending_list_limit=None, **options)Link to this definition
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
BtreeGinExtensionmigration operation.Set the
fastupdateparameter toFalseto 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
fastupdateis enabled.
GistIndexLink to this heading
- class GistIndex(*expressions, buffering=None, fillfactor=None, **options)Link to this definition
Creates a GiST index. These indexes are automatically created on spatial fields with
spatial_index=True. They’re also useful on other types, such asHStoreFieldor 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
BtreeGistExtensionmigration operation.Set the
bufferingparameter toTrueorFalseto 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 to this heading
- class HashIndex(*expressions, fillfactor=None, **options)Link to this definition
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 to this heading
- class SpGistIndex(*expressions, fillfactor=None, **options)Link to this definition
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 to this heading
- class OpClass(expression, name)Link to this definition
An
OpClass()expression represents theexpressionwith 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 yourINSTALLED_APPS. Set thenameparameter to the name of the operator class.예시:
Index( OpClass(Lower('username'), name='varchar_pattern_ops'), name='lower_username_idx', )creates an index on
Lower('username')usingvarchar_pattern_ops.UniqueConstraint( OpClass(Upper('description'), name='text_pattern_ops'), name='upper_description_unique', )creates a unique constraint on
Upper('description')usingtext_pattern_ops.ExclusionConstraint( name='exclude_overlapping_ops', expressions=[ (OpClass('circle', name='circle_ops'), RangeOperators.OVERLAPS), ], )creates an exclusion constraint on
circleusingcircle_ops.