sql >> Database >  >> RDS >> PostgreSQL

compensatie / limiet prestatie-optimalisatie

Paginering is moeilijk; het RDBMS-model is niet goed geschikt voor grote aantallen kortstondige zoekopdrachten met stateful scrollen. Zoals u opmerkte, is het gebruik van hulpbronnen meestal te hoog.

Je hebt de opties:

  • LIMIT en OFFSET
  • Een cursor gebruiken
  • De resultaten kopiëren naar een tijdelijke tabel of naar memcached of iets dergelijks, en het dan van daaruit lezen
  • x > id en LIMIT

Hiervan geef ik de voorkeur aan x > id met een LIMIT . Onthoud gewoon de laatste ID die je hebt gezien en vraag om de volgende. Als u een monotoon toenemende reeks heeft, is dit eenvoudig en betrouwbaar, en voor eenvoudige zoekopdrachten is het efficiënt.




  1. Expressie mysql NOW() in Doctrine QueryBuilder

  2. Mysql-resultaten krijgen van de afgelopen 30 dagen

  3. (Eén tabel) rijen invoegen

  4. Mysql Er kon geen verbinding worden gemaakt omdat de doelmachine dit actief weigerde