sql >> Databasteknik >  >> RDS >> PostgreSQL

PostgreSQL:count() eller behålla en räknare?

Kanske kontraintuitivt kommer du förmodligen att upptäcka att den enkla count tillvägagångssättet är snabbare om inte din arbetsbelastning är mycket partisk mot läsningar.

Anledningen till detta är att effekten av räknartabellen blir att serialisera uppdateringar, så endast en transaktion som uppdaterar en given foo kan vara under flygning när som helst. Det beror på att uppdateringen för triggern som uppdaterar räknaren kommer att låsa den foo s post i räknartabellen och kommer inte att släppa den förrän transaktionen rullar tillbaka eller commit.

Ännu värre, om din transaktion påverkar mer än en foo och det gör en annan, du har stor chans att en av transaktionerna avbryts på grund av ett dödläge.

Håll dig till en enkel räkning tills du har en bra anledning att ändra det.



  1. Använda pdo i php med lagrad procedur

  2. Är ip2long() i PHP lika med INET_ATON()-funktionen i MySQL?

  3. Hur ansluter man till MySQL med UTF8 i ett perl-skript?

  4. Uppskattat antal rader som ska läsas