sql >> Database teknologi >  >> RDS >> PostgreSQL

offset/limit performance optimering

Sideinddeling er svært; RDBMS-modellen er ikke velegnet til et stort antal kortvarige forespørgsler med stateful scrolling. Som du har bemærket, har ressourceforbruget en tendens til at være for højt.

Du har mulighederne:

  • LIMIT og OFFSET
  • Brug af en markør
  • Kopiering af resultaterne til en midlertidig tabel eller til memcached eller lignende, og læs det derefter derfra
  • x > id og LIMIT

Af disse foretrækker jeg x > id med en LIMIT . Bare husk det sidste ID, du så, og spørg efter det næste. Hvis du har en monotont stigende sekvens vil dette være enkelt, pålideligt, og til simple forespørgsler vil det være effektivt.




  1. Hvordan kan jeg gruppere efter dato og klokkeslæt uden at tage tid i betragtning

  2. Opbygning af en maskinlæringsmodel med SQL Server, ML.NET og C#

  3. Socket-undtagelser, når du forsøger at oprette forbindelse til MySql-database fra gitpod IDE (ubuntu-server)

  4. Erklæring af flere værdier i Oracle BIND-variabler