sql >> Databáze >  >> RDS >> PostgreSQL

PostgreSQL:count() nebo keep counter?

Možná proti intuici pravděpodobně zjistíte, že jednoduchý count přístup je rychlejší, pokud vaše pracovní zátěž není příliš zaujatá ke čtení.

Důvodem je, že účinek tabulky čítačů bude mít za následek serializaci aktualizací, takže pouze jedna transakce aktualizuje daný foo může být kdykoli v letu. Je to proto, že aktualizace spouštěče, která aktualizuje počítadlo, zablokuje toto foo 's záznam v tabulce počítadel a neuvolní jej, dokud se transakce nevrátí zpět nebo se nepotvrdí.

Horší je, pokud vaše transakce ovlivňuje více než jeden foo a stejně tak další, máte vysokou šanci, že jedna z transakcí bude přerušena kvůli uváznutí.

Držte se jednoduchého počítání, dokud nebudete mít dobrý důvod jej změnit.



  1. DROP všechny cizí klíče v databázi MYSQL

  2. Jak psát složité dotazy v SQL

  3. Přidání výsledků příkazů CASE

  4. Horních n procent horních n %