Bardziej wydajna paginacja w MySQL

Gdy potrzebujemy wyświetlić tysięczną stronę z dużego zbioru danych, to lepiej nie robić „LIMIT 10000, 10”, ale zapamiętać ostatnie ID, które się wyświetliło (ostatnie ID z poprzednio oglądanej strony) i zrobić:
WHERE id > @ostatnie_id LIMIT 10

Dzięki temu zapobiegniemy również problemowi, który występuje, gdy wpis z bazy danych zostanie usunięty lub dodany pomiędzy wyświetleniem jednej strony a wyświetleniem kolejnej strony. Zazwyczaj w takiej sytuacji użytkownik zobaczy ten sam wiersz dwukrotnie albo nie zobaczy jakiegoś wiersza wcale. Gdy użyjemy powyższej techniki, opisany problem nie wystąpi.

Więcej informacji:
http://forums.mysql.com/read.php?10,380718,381161#msg-381161

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *