# Django 2.1.8.dev20190330215650 documentation

# PostgreSQL specific model indexes

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

## `BrinIndex`

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

  Creates a BRIN index.

  The `pages_per_range` argument takes a positive integer.

## `GinIndex`

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

  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 bytes to the 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. 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.