Rumah >pangkalan data >tutorial mysql >Bagaimanakah Saya Boleh Menentukan Jumlah Kiraan Baris Dengan Cekap Sebelum Menggunakan LIMIT dalam Pertanyaan PostgreSQL?
Paging data pangkalan data biasanya memerlukan penentuan jumlah halaman untuk membuat kawalan paging. Biasanya, ini memerlukan menjalankan dua pertanyaan berasingan: satu menggunakan COUNT() untuk mendapatkan jumlah dan satu lagi menggunakan LIMIT untuk mendapatkan semula data halaman semasa.
Kaedah ini tidak cekap. Nasib baik, terdapat cara yang lebih baik dalam PostgreSQL untuk mendapatkan jumlah sebelum menggunakan LIMIT: gunakan fungsi tetingkap.
Fungsi tetingkap yang diperkenalkan dalam PostgreSQL 8.4 membolehkan kami melakukan pengiraan pada set data yang ditakrifkan oleh "tetingkap". Dengan menentukan tetingkap yang sesuai, kami boleh mendapatkan jumlahnya tanpa menjejaskan operasi LIMIT.
Pertimbangkan pertanyaan berikut:
<code class="language-sql">SELECT foo, COUNT(*) OVER() AS full_count FROM bar WHERE <some condition=""> ORDER BY <some col=""> LIMIT <pagesize> OFFSET <offset>;</code>
Di sini, full_count
memberikan jumlah bilangan baris sebelum LIMIT digunakan.
Nota: Menggunakan fungsi tetingkap dengan cara ini boleh menjadi lebih mahal dari segi pengiraan daripada pendekatan dua pertanyaan tradisional. Ini kerana semua baris mesti dikira tanpa mengira parameter halaman.
Dalam sesetengah kes tidak perlu mendapatkan jumlah sebelum LIMIT. Alternatifnya ialah:
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menentukan Jumlah Kiraan Baris Dengan Cekap Sebelum Menggunakan LIMIT dalam Pertanyaan PostgreSQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!