sql >> Databáze >  >> RDS >> PostgreSQL

offset/limit optimalizace výkonu

Stránkování je těžké; model RDBMS není příliš vhodný pro velké množství krátkodobých dotazů se stavovým rolováním. Jak jste poznamenali, využití zdrojů bývá příliš vysoké.

Máte možnosti:

  • LIMIT a OFFSET
  • Pomocí kurzoru
  • Kopírování výsledků do dočasné tabulky nebo do memcached nebo podobného a jejich čtení odtud
  • x > id a LIMIT

Z nich preferuji x > id s LIMIT . Stačí si zapamatovat poslední ID, které jste viděli, a požádat o další. Pokud máte monotónně rostoucí sekvenci, bude to jednoduché, spolehlivé a pro jednoduché dotazy to bude efektivní.




  1. Jak získat celkový počet nalezených řádků bez zohlednění limitu v PDO?

  2. Co byste měli vědět o WITH NOCHECK při povolení omezení CHECK v SQL Server

  3. Aktualizujte sloupec tabulky přidáním některých hodnot ke stejné hodnotě sloupce v MySQL

  4. Jak změnit výchozí systémové datum z ymd na dmy