Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Làm cách nào để tăng tốc truy vấn MySQL với phần bù lớn trong mệnh đề LIMIT?

Có lẽ bạn có thể tạo một bảng lập chỉ mục cung cấp một khóa tuần tự liên quan đến khóa trong bảng mục tiêu của bạn. Sau đó, bạn có thể nối bảng lập chỉ mục này với bảng mục tiêu của mình và sử dụng mệnh đề where để lấy các hàng bạn muốn một cách hiệu quả hơn.

#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. Làm cách nào để liệt kê có cùng dữ liệu id với vòng lặp while trong PHP?

  2. MySQL - Chọn một cột không có trong Nhóm theo

  3. HIỂN THỊ BẢNG BIỂU trong MySQL

  4. Cách hàm OCTET_LENGTH () hoạt động trong MySQL

  5. 4 cách để liệt kê tất cả các chế độ xem trong MySQL