sql >> Database teknologi >  >> RDS >> Mysql

Hvordan kan jeg fremskynde en MySQL-forespørgsel med en stor offset i LIMIT-klausulen?

Måske kunne du oprette en indekseringstabel, som giver en sekventiel nøgle relateret til nøglen i din måltabel. Så kan du slutte denne indekseringstabel til din måltabel og bruge en where-klausul for mere effektivt at få de rækker, du ønsker.

#opret tabel for at gemme sekvenserCREATE TABLE seq (seq_no int ikke null auto_increment, id int ikke null, primærnøgle(seq_no), unik(id));#create the sequenceTRUNCATE seq;INSERT INTO seq (id) SELECT id FROM mytable ORDER BY id;#få nu 1000 rækker fra offset 1000000SELECT mytable.* FRA mytable INNER JOIN seq USING(id)WHERE seq.seq_no MELLEM 1000000 OG 1000999;

  1. Sådan ekskluderer du poster med bestemte værdier i sql select

  2. Fejlfinding af CPU-ydeevne på VMware

  3. SUM() Funktion i MySQL

  4. Top 10 bedste praksis i MySQL