Mencari Nombor dalam N Baris Terakhir Jadual MySQL Besar
Dalam senario ini, anda mempunyai jadual yang panjang dengan berjuta-juta baris, setiap satu mempunyai indeks ( autoincrement) dan medan integer. Anda ingin menentukan dengan cepat sama ada nombor yang ditentukan muncul dalam n baris akhir jadual.
Penyelesaian Cekap
Pendekatan paling berkesan memerlukan memanfaatkan jadual terbitan seperti berikut:
SELECT `id`
FROM (
SELECT `id`, `val`
FROM `big_table`
ORDER BY `id` DESC
LIMIT $n
) AS t
WHERE t.`val` = $certain_number;
Salin selepas log masuk
Penjelasan:
- Pertanyaan ini mewujudkan jadual terbitan, memilih lajur id dan val daripada jadual_besar.
- Ia mengisih jadual terbitan dalam tertib menurun berdasarkan lajur id, memastikan baris terbaharu muncul dahulu.
- Klausa LIMIT $n mengehadkan set keputusan kepada n baris terbaharu.
- Akhir sekali, WHERE keadaan sepadan dengan lajur val jadual terbitan dengan nombor_tertentu yang dibekalkan, mengenal pasti baris yang mengandungi nombor dalam n baris terakhir.
Faedah:
- Carian Berindeks: Isih mengikut lajur id autokenaikan mengambil masa kelebihan indeks jadual, mengoptimumkan carian.
-
Prestasi: Mengehadkan keputusan yang ditetapkan kepada n baris terakhir menghapuskan keperluan untuk mengimbas keseluruhan jadual, meningkatkan prestasi dengan ketara.
-
Fleksibiliti: Pertanyaan membolehkan anda mengubah suai parameter $n untuk mencari dalam julat berbeza yang terakhir baris.
Atas ialah kandungan terperinci Bagaimana untuk Mencari Nombor dengan Cekap dalam N Baris Terakhir Jadual MySQL Besar?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!