Mysql
 sql >> база данни >  >> RDS >> Mysql

Как мога да ускоря MySQL заявка с голямо изместване в клаузата LIMIT?

Може би бихте могли да създадете таблица за индексиране, която предоставя последователен ключ, свързан с ключа във вашата целева таблица. След това можете да присъедините тази таблица за индексиране към вашата целева таблица и да използвате клауза where, за да получите по-ефективно редовете, които искате.

#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. Поддържане на реда в MySQL IN заявка

  2. MySQL – Вземете последната цена на заявката, като използвате SHOW STATUS КАТО „Last_Query_Cost“

  3. Как да репликирате MySQL база данни на друг сървър

  4. Грешка в MySQL:спецификация на ключ без дължина на ключа

  5. Примери за връзки много към много