Heim  >  Artikel  >  Datenbank  >  MySQL-Paging-Problem unter Millionen von Daten

MySQL-Paging-Problem unter Millionen von Daten

藏色散人
藏色散人nach vorne
2019-04-17 17:23:343711Durchsuche

Wir verwenden während des Entwicklungsprozesses häufig Paging. Die Kerntechnologie besteht darin, Limit zum Lesen von Daten zu verwenden. Während des Tests zur Verwendung des Limits für Paging wurden die folgenden Daten erhalten:

select * from news order by id desc limit 0,10
耗时0.003秒
select * from news order by id desc limit 10000,10
耗时0.058秒
select * from news order by id desc limit 100000,10 
耗时0.575秒
select * from news order by id desc limit 1000000,10
耗时7.28秒

Wir waren überrascht, dass die Abfragegeschwindigkeit umso langsamer war, je größer der Paging-Startpunkt von MySQL bei großem Datenvolumen war. Die Abfragegeschwindigkeit für 1 Million Artikel beträgt bereits 7 Sekunden. Das ist ein Wert, den wir nicht akzeptieren können!

Verbesserungsplan 1

select * from news 
where id >  (select id from news order by id desc  limit 1000000, 1)
order by id desc 
limit 0,10

Die Abfragezeit beträgt 0,365 Sekunden, die Effizienzverbesserung ist sehr offensichtlich! ! Was ist das Prinzip? ? ?

Wir haben Bedingungen verwendet, um die ID zu filtern (wählen Sie die ID aus der Nachrichtenreihenfolge nach ID-Abgrenzungslimit 1000000, 1) und haben Sie nur das ID-Feld abgefragt des Abfrageaufwands!

Verbesserungsplan 2

Geeignet für Systeme mit fortlaufenden IDs, extrem schnell!

select * from news 
where id  between 1000000 and 1000010 
order by id desc

ist nicht für Abfragen mit Bedingungen und diskontinuierlichen IDs geeignet. Sehr schnell!

Das obige ist der detaillierte Inhalt vonMySQL-Paging-Problem unter Millionen von Daten. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:hcoder.net. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen