Rumah >pangkalan data >tutorial mysql >Penomboran Set Kekunci lwn. OFFSET dalam Pelayan SQL: Pendekatan yang Lebih Cekap?
Penyelesaian yang lebih cekap untuk halaman SQL Server: Kelui set kekunci
Dalam SQL Server, paging biasanya dilaksanakan menggunakan OFFSET, tetapi untuk jadual besar, paging Keyset adalah kaedah yang lebih cekap. Tidak seperti penomboran rowset, yang memerlukan membaca semua baris sebelumnya untuk mencapai halaman yang dikehendaki, penomboran Keyset melompat terus ke lokasi yang betul dalam indeks, meningkatkan prestasi dengan ketara.
Melaksanakan paging Keyset memerlukan mencipta indeks unik pada kunci yang diperlukan. Kunci boleh mengandungi lajur tambahan yang diperlukan oleh pertanyaan. Perlu diingatkan bahawa kaedah ini tidak boleh terus melompat ke nombor halaman tertentu. Sebaliknya, anda perlu mencari kunci tertentu terlebih dahulu dan kemudian teruskan dari sana.
Satu kelebihan paging Keyset ialah ia mengelakkan masalah "hilang baris" yang disebabkan oleh pemadaman baris dalam paging set baris. Memandangkan paging adalah berdasarkan kekunci, perubahan dalam susunan baris tidak akan menjejaskan logik paging.
Berikut ialah contoh menggunakan penomboran Keyset dalam SQL Server:
<code class="language-sql">SELECT TOP (@numRows) * FROM TableName ORDER BY Id DESC;</code>
Pertanyaan ini mendapatkan semula halaman pertama data dalam tertib menurun mengikut lajur Id. Untuk membuat penomboran lebih lanjut, anda boleh menggunakan nilai Id yang diterima terakhir seperti ini:
<code class="language-sql">SELECT TOP (@numRows) * FROM TableName WHERE Id < @lastId ORDER BY Id DESC;</code>
Untuk menyokong paging mengikut lajur bukan unik, lajur tambahan mesti disertakan dalam kedua-dua klausa ORDER BY
dan WHERE
. Indeks yang sesuai perlu dibina pada lajur terpilih untuk memastikan pelaksanaan yang cekap.
Kelui set kekunci menyediakan alternatif yang lebih cekap kepada halaman OFFSET untuk set data besar dalam SQL Server. Ia mengelakkan bacaan baris yang tidak perlu dan memastikan hasil penomboran yang konsisten walaupun apabila data diubah suai.
Atas ialah kandungan terperinci Penomboran Set Kekunci lwn. OFFSET dalam Pelayan SQL: Pendekatan yang Lebih Cekap?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!