Rumah  >  Artikel  >  pangkalan data  >  Pelaksanaan paging MySQL yang berbeza

Pelaksanaan paging MySQL yang berbeza

王林
王林asal
2024-02-19 15:26:23771semak imbas

Apakah kaedah paging dalam MySQL? MySQL menyediakan pelbagai kaedah paging Kaedah ini akan diperkenalkan secara terperinci di bawah dan contoh kod khusus akan disediakan.

Pelaksanaan paging MySQL yang berbeza

Paging menggunakan klausa LIMIT:

Klausa LIMIT digunakan untuk mengehadkan bilangan baris yang dikembalikan dalam hasil pertanyaan. Ia mempunyai dua parameter Parameter pertama menentukan kedudukan offset permulaan bagi hasil yang dikembalikan (mengira dari 0), dan parameter kedua menentukan bilangan baris hasil yang dikembalikan.

Sebagai contoh, tanya 10 data pertama dalam jadual tertentu:
    SELECT * FROM table_name LIMIT 10;
  1. Tanya data ke-11 hingga ke-20 dalam jadual tertentu:
    SELECT * FROM table_name LIMIT 10, 10;
  2. Kaedah ini mudah dan mudah digunakan, tetapi ia tidak cekap apabila menanya jumlah yang besar data. Ia lebih rendah kerana apabila MySQL melaksanakan pertanyaan LIMIT, ia perlu mengambil semua baris yang memenuhi syarat dahulu dan kemudian mengembalikan hasil dalam halaman.

Gunakan klausa OFFSET untuk paging:

OFFSET klausa digunakan untuk menentukan kedudukan offset hasil pertanyaan. Ia hanya mempunyai satu parameter, yang menunjukkan rekod yang hasilnya akan dikembalikan.

Sebagai contoh, tanya 10 keping data pertama dalam jadual:
    SELECT * FROM table_name OFFSET 0;
  1. Soal keping ke-11 hingga ke-20 data dalam jadual:
    SELECT * FROM table_name OFFSET 10;
  2. Serupa dengan klausa LIMIT, klausa OFFSET juga akan ditambah sebelum pertanyaan. Semua baris yang layak diambil, jadi terdapat juga isu kecekapan apabila memproses sejumlah besar data.

Gunakan fungsi ROW_NUMBER() untuk halaman: Fungsi

ROW_NUMBER() boleh memberikan nombor siri kepada setiap baris dalam hasil pertanyaan. Apabila digunakan dengan klausa LIMIT, pertanyaan paging boleh dilaksanakan.

Sebagai contoh, tanya 10 data pertama dalam jadual:
    SELECT * FROM (
      SELECT *, ROW_NUMBER() OVER (ORDER BY column_name) AS row_num
      FROM table_name
    ) AS temp_table
    WHERE row_num <= 10;
  1. Tanya data ke-11 hingga ke-20 dalam jadual:
    SELECT * FROM (
      SELECT *, ROW_NUMBER() OVER (ORDER BY column_name) AS row_num
      FROM table_name
    ) AS temp_table
    WHERE row_num > 10 AND row_num <= 20;
  2. Apabila menggunakan fungsi ROW_NUMBER() untuk pertanyaan halaman, MySQL akan melaksanakannya secara dalaman Pengoptimuman, hanya baris yang memenuhi syarat dikeluarkan, jadi ia lebih cekap apabila memproses sejumlah besar data.

Di atas adalah kaedah paging yang biasa digunakan dalam MySQL. Memilih kaedah yang sesuai mengikut situasi sebenar boleh meningkatkan kecekapan pertanyaan dengan berkesan.

Atas ialah kandungan terperinci Pelaksanaan paging MySQL yang berbeza. 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