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

Bagaimana cara memaksa Postgres untuk menggunakan indeks tertentu?

Dengan asumsi Anda bertanya tentang fitur "petunjuk indeks" yang umum ditemukan di banyak database, PostgreSQL tidak menyediakan fitur seperti itu. Ini adalah keputusan sadar yang dibuat oleh tim PostgreSQL. Ikhtisar yang bagus tentang mengapa dan apa yang dapat Anda lakukan dapat ditemukan di sini. Alasannya pada dasarnya adalah bahwa ini adalah peretasan kinerja yang cenderung menyebabkan lebih banyak masalah di kemudian hari saat data Anda berubah, sedangkan pengoptimal PostgreSQL dapat mengevaluasi kembali rencana berdasarkan statistik. Dengan kata lain, apa yang mungkin menjadi rencana kueri yang baik hari ini mungkin tidak akan menjadi rencana kueri yang baik untuk sepanjang waktu, dan petunjuk indeks memaksa rencana kueri tertentu untuk sepanjang waktu.

Sebagai palu yang sangat tumpul, berguna untuk pengujian, Anda dapat menggunakan enable_seqscan dan enable_indexscan parameter. Lihat:

  • Memeriksa penggunaan indeks
  • enable_ parameter

Ini tidak cocok untuk penggunaan produksi berkelanjutan . Jika Anda memiliki masalah dengan pilihan paket kueri, Anda akan melihat dokumentasi untuk melacak masalah kinerja kueri. Jangan hanya mengatur enable_ params dan pergi.

Kecuali Anda memiliki alasan yang sangat baik untuk menggunakan indeks, Postgres mungkin membuat pilihan yang tepat. Mengapa?

  • Untuk tabel kecil, pemindaian berurutan lebih cepat dilakukan.
  • Postgres tidak menggunakan indeks saat tipe data tidak cocok dengan benar, Anda mungkin perlu menyertakan gips yang sesuai.
  • Setelan perencana Anda mungkin menyebabkan masalah.

Lihat juga postingan newsgroup lama ini.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Temukan baris dengan beberapa bidang duplikat dengan Rekaman Aktif, Rel &Postgres

  2. Batas ukuran tipe data JSON di PostgreSQL

  3. Ikhtisar Alat Penjadwalan Pekerjaan untuk PostgreSQL

  4. Koneksi ditolak (PGError) (postgresql dan Rails)

  5. Cara membuat pengguna dengan PSQL