Meningkatkan Prestasi Penomboran PostgreSQL pada Jadual Besar
Mengambil data bernombor daripada jadual PostgreSQL yang besar (berjuta-juta baris) menggunakan OFFSET
boleh memberi kesan teruk kepada kelajuan pertanyaan. Artikel ini membentangkan strategi pengoptimuman unggul: penomboran set kekunci.
Penomboran Set Kekunci: Pendekatan yang Lebih Cekap
Penomboran set kekunci mengelakkan perangkap prestasi OFFSET
dengan memanfaatkan nilai baris terakhir daripada halaman sebelumnya. Inilah pertanyaannya:
<code class="language-sql">SELECT * FROM big_table WHERE (vote, id) > (vote_x, id_x) ORDER BY vote, id LIMIT n;</code>
vote_x
dan id_x
mewakili baris terakhir vote
dan id
daripada halaman sebelumnya. Ini membolehkan pangkalan data melangkau baris dengan cekap, meningkatkan prestasi dengan ketara berbanding OFFSET
.
Peningkatan Indeks
Untuk prestasi optimum, buat indeks pada lajur yang digunakan dalam klausa WHERE
:
<code class="language-sql">CREATE INDEX vote_order_asc ON big_table (vote, id);</code>
Nota Penting:
(vote, id)
mestilah unik untuk memastikan hasil yang konsisten.ORDER BY
mesti sepadan dengan arah indeks.ORDER BY
bercampur atau bercanggah.Bacaan Lanjut:
Atas ialah kandungan terperinci Bagaimanakah Penomboran Keyset Boleh Mengoptimumkan Pertanyaan PostgreSQL dengan Offset Besar?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!