PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Offset/Limit-Performance-Optimierung

Paginierung ist schwierig; Das RDBMS-Modell eignet sich nicht gut für eine große Anzahl kurzlebiger Abfragen mit Stateful-Scrolling. Wie Sie bemerkt haben, ist der Ressourcenverbrauch tendenziell zu hoch.

Sie haben die Möglichkeiten:

  • LIMIT und OFFSET
  • Einen Cursor verwenden
  • Kopieren der Ergebnisse in eine temporäre Tabelle oder in memcached oder ähnliches und lesen sie dann von dort aus
  • x > id und LIMIT

Von diesen bevorzuge ich x > id mit einem LIMIT . Merken Sie sich einfach den letzten Ausweis, den Sie gesehen haben, und fragen Sie nach dem nächsten. Wenn Sie eine monoton ansteigende Sequenz haben, ist dies einfach, zuverlässig und für einfache Abfragen effizient.