Bagaimana untuk memaksa Postgres menggunakan indeks tertentu?
P粉785905797
P粉785905797 2023-08-20 20:42:25
0
1
701
<p>Bagaimanakah saya boleh memaksa Postgres menggunakan indeks apabila ia berkeras untuk melakukan imbasan berurutan? </p>
P粉785905797
P粉785905797

membalas semua(1)
P粉281089485

Dengan mengandaikan anda bertanya tentang ciri "petunjuk indeks" yang biasa dalam banyak pangkalan data, PostgreSQL tidak menyediakan ciri sedemikian. Ini adalah keputusan yang disengajakan oleh pasukan PostgreSQL. Gambaran keseluruhan yang baik tentang sebab dan perkara yang boleh anda lakukan boleh didapati di sini. Sebab asasnya ialah ini ialah kaedah pengoptimuman prestasi yang cenderung menyebabkan lebih banyak masalah apabila data berubah, dan pengoptimum PostgreSQL boleh menilai semula rancangan berdasarkan statistik. Dalam erti kata lain, pelan pertanyaan yang baik hari ini mungkin bukan rancangan pertanyaan yang baik sepanjang masa dan pembayang indeks memaksa pelan pertanyaan tertentu.

Sebagai alat yang sangat kasar untuk ujian, anda boleh menggunakan enable_seqscanenable_indexscan parameter. Lihat:

Ini tidak bertujuan untuk kegunaan pengeluaran yang berterusan . Jika anda menghadapi masalah dengan pemilihan pelan pertanyaan, anda harus menyemak dokumen untuk menjejaki isu prestasi pertanyaan. Jangan hanya tetapkan parameter enable_ dan biarkan.

Melainkan anda mempunyai sebab yang sangat baik untuk menggunakan indeks, Postgres mungkin akan membuat pilihan yang tepat. kenapa?

  • Untuk meja kecil, imbasan berurutan adalah lebih pantas.
  • Postgres tidak menggunakan indeks apabila jenis data tidak sepadan, anda mungkin perlu memasukkan penukaran yang sesuai.
  • Tetapan pelan anda mungkin menyebabkan masalah.

Lihat juga siaran kumpulan berita lama ini.

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan