sql >> Databasteknik >  >> RDS >> PostgreSQL

offset/limit prestandaoptimering

Paginering är svårt; RDBMS-modellen är inte väl lämpad för ett stort antal kortlivade frågor med statistisk rullning. Som du noterade tenderar resursanvändningen att vara för hög.

Du har alternativen:

  • LIMIT och OFFSET
  • Använda en markör
  • Kopiera resultaten till en tillfällig tabell eller till memcached eller liknande och läser sedan det därifrån
  • x > id och LIMIT

Av dessa föredrar jag x > id med en LIMIT . Kom bara ihåg det senaste ID du såg och fråga efter nästa. Om du har en monotont ökande sekvens kommer detta att vara enkelt, pålitligt och för enkla frågor kommer det att vara effektivt.




  1. Undvik att infoga exponentiellt värde i DB Float-kolumnen

  2. Använd like-satsen med $wpdb->förbered att visa hashs där jokertecken finns

  3. MySQL hämta sträng(ar) mellan två # / flera par av #

  4. MySQL-problem - KOMPLETT serveröverskridande! Vänligen ge råd