---
title: "PostgreSQL specific model indexes"
version: 2.0
locale: id
source: https://docs.djangoproject.com/id/2.0/ref/contrib/postgres/indexes/
canonical: https://djangodocs.dev/id/2.0/ref/contrib/postgres/indexes/
---
# PostgreSQL specific model indexes

> **New in Django 1.11**

The following are PostgreSQL specific [indexes](/id/2.0/ref/models/indexes/)
available from the `django.contrib.postgres.indexes` module.

## `BrinIndex`

#### `class BrinIndex(pages_per_range=None, **options)`

Creates a [BRIN index](https://www.postgresql.org/docs/current/static/brin-intro.html).

The `pages_per_range` argument takes a positive integer.

## `GinIndex`

#### `class GinIndex(fastupdate=None, gin_pending_list_limit=None, **options)`

Creates a [gin index](https://www.postgresql.org/docs/current/static/gin.html).

To use this index on data types not in the [built-in operator classes](https://www.postgresql.org/docs/current/static/gin-builtin-opclasses.html),
you need to activate the [btree\_gin extension](https://www.postgresql.org/docs/current/static/btree-gin.html) on
PostgreSQL. You can install it using the
[`BtreeGinExtension`](/id/2.0/ref/contrib/postgres/operations/#django.contrib.postgres.operations.BtreeGinExtension) migration
operation.

Set the `fastupdate` parameter to `False` to disable the [GIN Fast
Update Technique](https://www.postgresql.org/docs/current/static/gin-implementation.html#GIN-FAST-UPDATE) that's enabled by default in PostgreSQL.

Provide an integer number of bytes to the [gin\_pending\_list\_limit](https://www.postgresql.org/docs/current/static/runtime-config-client.html#GUC-GIN-PENDING-LIST-LIMIT) parameter
to tune the maximum size of the GIN pending list which is used when
`fastupdate` is enabled. This parameter requires PostgreSQL ≥ 9.5.

> **Changed in Django 2.0**
>
> The `fastupdate` and `gin_pending_list_limit` parameters were added.

## `GistIndex`

#### `class GistIndex(buffering=None, fillfactor=None, **options)`

> **New in Django 2.0**

Creates a [GiST index](https://www.postgresql.org/docs/current/static/gist.html). These indexes
are automatically created on spatial fields with [`spatial_index=True`](/id/2.0/ref/contrib/gis/model-api/#django.contrib.gis.db.models.BaseSpatialField.spatial_index). They're
also useful on other types, such as
[`HStoreField`](/id/2.0/ref/contrib/postgres/fields/#django.contrib.postgres.fields.HStoreField) or the [range
fields](/id/2.0/ref/contrib/postgres/fields/#range-fields).

To use this index on data types not in the built-in [gist operator classes](https://www.postgresql.org/docs/current/static/gist-builtin-opclasses.html),
you need to activate the [btree\_gist extension](https://www.postgresql.org/docs/current/static/btree-gist.html) on
PostgreSQL. You can install it using the
[`BtreeGistExtension`](/id/2.0/ref/contrib/postgres/operations/#django.contrib.postgres.operations.BtreeGistExtension) migration
operation.

Set the `buffering` parameter to `True` or `False` to manually enable
or disable [buffering build](https://www.postgresql.org/docs/current/static/gist-implementation.html#GIST-BUFFERING-BUILD) of the index.

Provide an integer value from 10 to 100 to the [fillfactor](https://www.postgresql.org/docs/current/static/sql-createindex.html#SQL-CREATEINDEX-STORAGE-PARAMETERS) parameter to
tune how packed the index pages will be. PostgreSQL's default is 90.
