Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Mencari Nombor dengan Cekap dalam N Baris Terakhir Jadual MySQL Besar?

Bagaimana untuk Mencari Nombor dengan Cekap dalam N Baris Terakhir Jadual MySQL Besar?

Susan Sarandon
Susan Sarandonasal
2024-12-24 04:18:15217semak imbas

How to Efficiently Search for a Number in the Last N Rows of a Large MySQL Table?

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;

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!

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