Postgres 10 atau yang lebih baru
btree_gist
sekarang juga mencakup tipe data uuid
, seperti Paulus berkomentar
. (Dan beberapa tipe data lainnya, semuanya enum
jenis.)
Sekarang yang perlu Anda lakukan:instal ekstensi sekali per database:
CREATE EXTENSION btree_gist;
Maka indeks Anda seharusnya berfungsi.
Terkait:
- Batasan pengecualian pada kolom bitstring dengan operator AND bitwise
- Membuat indeks multikolom di PostgreSQL, yang berisi kolom skalar dan array
Postgres 9.6 atau lebih lama
(Jawaban asli.)
Biasanya saya akan menyarankan modul tambahan btree_gist
, tapi ketik uuid
adalah tidak tercakup olehnya.
Secara teori, karena UUID adalah a 128-bit quantity
(per dokumentasi
), cara yang paling efisien adalah dengan mengubahnya menjadi dua bigint
atau float8
untuk tujuan indeks. Tapi tak satu pun dari pemeran ini didefinisikan dalam Postgres standar.
Saya menemukan
Untuk menggunakan indeks fungsional ini, kueri harus cocok dengan ekspresi itu. Anda dapat menggunakan singkatan
Selain:jangan gunakan
Pertanyaannya adalah:mengapa apakah Anda memerlukan indeks GiST. Solusi terbaik tergantung pada tujuannya."value"::text
dalam kueri (tetapi tidak dalam definisi indeks tanpa menambahkan lebih banyak tanda kurung).value
sebagai nama kolom itu adalah kata yang dicadangkan dalam SQL standar .