Analiza decyzji · Middle · Pytanie 9 z 14
Dziennik aktywności ma 50 mln wierszy, a OFFSET zwalnia na głębokich stronach. UI ma tylko przyciski „Starsze” i „Nowsze”. Jak paginować?
- 1Zostawić
OFFSET, ale cache'ować każdą stronę - 2Ograniczyć głębokość do pierwszych 1000 stron
- 3Paginacja keyset po
(created_at, id)
Pokaż odpowiedź
Poprawna odpowiedź: Paginacja keyset po (created_at, id)
Wyjaśnienie
Paginacja keyset skacze po indeksie, więc głębokość nie wpływa na szybkość, a wystarczą jej przyciski dalej i wstecz. Cache pasuje do listy rzadko zmienianej, a dziennik stale rośnie, więc strony w cache się przesuwają. Limit głębokości pasuje do wyników wyszukiwania, gdzie nikt nie schodzi głęboko, a tu ukryłby stare wpisy, które mogą być potrzebne.