Berikut adalah ide. Anda dapat memindahkan operasi mahal ke pembaruan saat penjual memasukkan/memperbarui penawaran baru daripada saat pengguna akhir memilih data untuk dilihat. Ini mungkin tampak seperti cara non-dinamis untuk menangani data pengurutan, tetapi dapat meningkatkan kecepatan. Dan, seperti yang kita ketahui, selalu ada trade off antara kinerja dan faktor pengkodean lainnya.
Buat tabel untuk menampung berikutnya dan sebelumnya untuk setiap penawaran dan setiap opsi pengurutan. (Atau, Anda dapat menyimpan ini di tabel penawaran jika Anda akan selalu memiliki tiga opsi pengurutan -- kecepatan kueri adalah alasan yang baik untuk mendenormalisasi database Anda)
Jadi Anda akan memiliki kolom ini:
- Jenis Pengurutan (Tidak Disortir, Harga, Kelas, dan Desc Harga)
- ID Penawaran
- ID Sebelumnya
- ID Berikutnya
Ketika informasi detail untuk halaman detail penawaran ditanyakan dari database, NextID dan PrevID akan menjadi bagian dari hasil. Jadi, Anda hanya perlu satu kueri untuk setiap halaman detail.
Setiap kali penawaran dimasukkan, diperbarui, atau dihapus, Anda perlu menjalankan proses yang memvalidasi integritas/akurasi tabel sorttype.