Rumah >pangkalan data >tutorial mysql >Penomboran Set Kekunci lwn. OFFSET dalam Pelayan SQL: Pendekatan yang Lebih Cekap?

Penomboran Set Kekunci lwn. OFFSET dalam Pelayan SQL: Pendekatan yang Lebih Cekap?

DDD
DDDasal
2025-01-16 11:01:57162semak imbas

Keyset Pagination vs. OFFSET in SQL Server:  A More Efficient Approach?

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn