Los siguientes son índices específicos de PostgreSQL: índices disponibles desde el módulo django.contrib.postgres.indexes.
BloomIndex¶Crea un índice bloom.
Para utilizar este índice, necesitarás activar la extensión bloom en PostgreSQL. Puedes instalarla utilizando la operación de migración BloomExtension.
Proporciona un número entero de bits desde 1 a 4096 al parámetro length para especificar la longitud de cada entrada del índice. El valor por defecto de PostgreSQL es 80.
El argumento columns acepta una tupla o lista de hasta 32 valores que son números enteros de bits desde 1 a 4095.
BrinIndex¶Crea un índice de BRIN https://www.postgresql.org/docs/current/brin.html.
Establece el parámetro autosummarize en True para habilitar la sumarización automática a ser realizada por autovacuum.
El argumento pages_per_range toma un entero positivo.
BTreeIndex¶Crea un índice B-Tree.
Proporciona un valor entero de 10 a 100 al parámetro fillfactor_ para ajustar cómo compactos serán las páginas del índice. El valor por defecto de PostgreSQL es 90.
Proporciona un valor booleano al parámetro deduplicate_items_ para controlar si la deduplicación está habilitada. PostgreSQL habilita la deduplicación por defecto.
Se agregó el parámetro deduplicate_items.
GinIndex¶Crea un índice 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
BtreeGinExtension migration
operation.
Establece el parámetro fastupdate en False para deshabilitar la técnica de actualización rápida GIN que está habilitada por defecto en PostgreSQL.
Proporciona un número entero de kilobytes al parámetro gin_pending_list_limit_ para ajustar el tamaño máximo de la lista pendiente GIN, que se utiliza cuando fastupdate está habilitado.
GistIndex¶Crea un índice GiST. Estos índices se crean automáticamente en los campos espaciales con spatial_index=True. También son útiles en otros tipos, como HStoreField o los campos de rango <range-fields>.
Para utilizar este índice en tipos de datos que no están en las clases operadoras integradas gist operator classes, debes activar la extensión btree_gist en PostgreSQL. Puedes instalarla utilizando la operación de migración BtreeGistExtension.
Establece el parámetro buffering en True o False para habilitar o deshabilitar manualmente la compresión del índice.
Proporciona un valor entero de 10 a 100 al parámetro fillfactor_ para ajustar cómo compactos serán las páginas del índice. El valor por defecto de PostgreSQL es 90.
HashIndex¶SpGistIndex¶OpClass() expresiones¶Una expresión OpClass() representa la expresión con una clase de operador personalizada que se puede utilizar para definir índices funcionales, restricciones únicas funcionales o exclusiones. Para usarla, debes agregar 'django.contrib.postgres' en tus INSTALLED_APPS. Establece el parámetro name con el nombre de la clase de operador.
Por ejemplo:
Index(
OpClass(Lower("username"), name="varchar_pattern_ops"),
name="lower_username_idx",
)
crea un índice sobre Lower('username') utilizando varchar_pattern_ops.
UniqueConstraint(
OpClass(Upper("description"), name="text_pattern_ops"),
name="upper_description_unique",
)
crea una restricción única sobre Upper('description') utilizando text_pattern_ops.
ExclusionConstraint(
name="exclude_overlapping_ops",
expressions=[
(OpClass("circle", name="circle_ops"), RangeOperators.OVERLAPS),
],
)
crea un exclusion constraint sobre circle utilizando circle_ops.
may 31, 2026