PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Bagaimana cara menggunakan uuid dengan tipe indeks Gist postgresql?

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:

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 "value"::text dalam kueri (tetapi tidak dalam definisi indeks tanpa menambahkan lebih banyak tanda kurung).

Selain:jangan gunakan value sebagai nama kolom itu adalah kata yang dicadangkan dalam SQL standar .

Pertanyaannya adalah:mengapa apakah Anda memerlukan indeks GiST. Solusi terbaik tergantung pada tujuannya.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. postgreSQL - psql \i :cara menjalankan skrip di jalur yang diberikan

  2. Menggunakan encoder JSON khusus untuk implementasi PostgreSQL JSONB SQLAlchemy

  3. Hubungkan ke database melalui soket unix menggunakan SQLAlchemy

  4. Bisakah Anda membuat urutan pada kolom yang sudah ada di Postgres

  5. Kueri XPath menjadi data hierarkis, mempertahankan hubungan leluhur-keturunan