Indeks model khusus PostgreSQL¶
Berikut adalah indexes khusus PostgreSQL tersedia dari modul django.contrib.postgres.indexes
.
BloomIndex
¶
-
class
BloomIndex
(*expressions, length=None, columns=(), **options)¶ 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.Changed in Django 3.2:Positional argument
*expressions
was added in order to support functional indexes.
BrinIndex
¶
-
class
BrinIndex
(*expressions, autosummarize=None, pages_per_range=None, **options)¶ Membuat sebuah BRIN index.
Lihat parameter
autosummarize
menjadiTrue
untuk mengadakan automatic summarization untuk dilakukan oleh autovacuum.Argumen
pages_per_range
megnambil integer positif.Changed in Django 3.2:Positional argument
*expressions
was added in order to support functional indexes.
BTreeIndex
¶
-
class
BTreeIndex
(*expressions, fillfactor=None, **options)¶ Membuat sebuah indeks B-Tree.
Sediakan nilai integer dari 10 ke 100 pada parameter fillfactor untuk mengatur bagaimana halaman indeks dibungkus. Awalan PostgreSQL adalah 90.
Changed in Django 3.2:Positional argument
*expressions
was added in order to support functional indexes.
GinIndex
¶
-
class
GinIndex
(*expressions, fastupdate=None, gin_pending_list_limit=None, **options)¶ Membuat sebuah gin index.
Untuk menggunakan indeks ini pada jenis data tidak dalam built-in operator classes, anda butuh mengaktifkan btree_gin extension pada PostgreSQL. Anda dapat memasang itu menggunakan tindakan perpindahan
BtreeGinExtension
.Setel parameter
fastupdate
menjadiFalse
untuk meniadakan GIN Fast Update Technique yang diadakan secara awalan di 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.Changed in Django 3.2:Positional argument
*expressions
was added in order to support functional indexes.
GistIndex
¶
-
class
GistIndex
(*expressions, buffering=None, fillfactor=None, **options)¶ Membuat sebuah GiST index. Indeks-indeks ini otomatis dibuat pada bidang spasial dengan
spatial_index=True
. Mereka juga berguna pada jenis lain, sepertiHStoreField
atau range fields.Untuk menggunakan indeks ini pada jenis-jenis data tidak dalam siap-pakai gist operator classes, anda butuh mengaktifkan btree_gist extension pada PostgreSQL. Anda dapat memasang itu menggunakan tindakan perpindahan
BtreeGistExtension
.Setel parameter
buffering
menjadiTrue
atauFalse
untuk secara manual mengadakan atau meniadakan buffering build dari indeks.Sediakan nilai integer dari 10 ke 100 pada parameter fillfactor untuk mengatur bagaimana halaman indeks dibungkus. Awalan PostgreSQL adalah 90.
Changed in Django 3.2:Positional argument
*expressions
was added in order to support functional indexes.
HashIndex
¶
-
class
HashIndex
(*expressions, fillfactor=None, **options)¶ Membuat sebuah indeks campuran.
Sediakan nilai integer dari 10 ke 100 pada parameter fillfactor untuk mengatur bagaimana halaman indeks dibungkus. Awalan PostgreSQL adalah 90.
Gunakan indeks ini hanya pada PostgreSQL 10 dan kemudian
Pengindeksan campuran telah tersedia dalam PostgreSQL untuk waktu yang lama, tetapi mereka menderita dari sejumlah masalah kesatuan data dalam versi terlama.
Changed in Django 3.2:Positional argument
*expressions
was added in order to support functional indexes.
SpGistIndex
¶
-
class
SpGistIndex
(*expressions, fillfactor=None, **options)¶ Membuat sebuah SP-GiST index.
Sediakan nilai integer dari 10 ke 100 pada parameter fillfactor untuk mengatur bagaimana halaman indeks dibungkus. Awalan PostgreSQL adalah 90.
Changed in Django 3.2:Positional argument
*expressions
was added in order to support functional indexes.
OpClass()
expressions¶
-
class
OpClass
(expression, name)¶ An
OpClass()
expression represents theexpression
with a custom operator class that can be used to define functional indexes or unique constraints. To use it, you need to add'django.contrib.postgres'
in yourINSTALLED_APPS
. Set thename
parameter to the name of the operator class.Sebagai contoh:
Index( OpClass(Lower('username'), name='varchar_pattern_ops'), name='lower_username_idx', )
creates an index on
Lower('username')
usingvarchar_pattern_ops
.Another example:
UniqueConstraint( OpClass(Upper('description'), name='text_pattern_ops'), name='upper_description_unique', )
creates a unique constraint on
Upper('description')
usingtext_pattern_ops
.Changed in Django 4.0:Support for functional unique constraints was added.