Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Bagaimana saya bisa mempercepat kueri MySQL dengan offset besar di klausa LIMIT?

Mungkin Anda bisa membuat tabel pengindeksan yang menyediakan kunci berurutan yang berkaitan dengan kunci di tabel target Anda. Kemudian Anda dapat menggabungkan tabel pengindeksan ini ke tabel target Anda dan menggunakan klausa where untuk mendapatkan baris yang Anda inginkan secara lebih efisien.

#create table to store sequences
CREATE TABLE seq (
   seq_no int not null auto_increment,
   id int not null,
   primary key(seq_no),
   unique(id)
);

#create the sequence
TRUNCATE seq;
INSERT INTO seq (id) SELECT id FROM mytable ORDER BY id;

#now get 1000 rows from offset 1000000
SELECT mytable.* 
FROM mytable 
INNER JOIN seq USING(id)
WHERE seq.seq_no BETWEEN 1000000 AND 1000999;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Akses root MySQL dari semua host

  2. Fungsi MySQL LN() – Mengembalikan Logaritma Natural dari suatu Angka

  3. Pemecahan masalah login PHP SQL sederhana

  4. Entity Framework membuat nama tabel jamak, tetapi tampilan mengharapkan nama tabel tunggal?

  5. Cara Memperbaiki Kesalahan MySQL 1064