sql >> Database >  >> RDS >> PostgreSQL

PostgreSQL:count() of een teller bijhouden?

Misschien contra-intuïtief, zult u waarschijnlijk merken dat de eenvoudige count aanpak is sneller, tenzij je werkdruk erg gericht is op lezen.

De reden hiervoor is dat het effect van de tellertabel zal zijn om updates te serialiseren, dus slechts één transactie die een gegeven foo bijwerkt. kan op elk moment in de vlucht zijn. Dat komt omdat de update voor de trigger die de teller bijwerkt een slot op die foo zal nemen 's invoer in de tellertabel en zal deze niet vrijgeven totdat de transactie wordt teruggedraaid of wordt vastgelegd.

Erger nog, als uw transactie van invloed is op meer dan één foo en een andere ook, je hebt een grote kans dat een van de transacties wordt afgebroken vanwege een impasse.

Houd je aan een eenvoudige telling totdat je een goede reden hebt om deze te wijzigen.



  1. Kan niet meteen meerdere meldingen ontvangen in Npgsql

  2. Op PostgreSQL gebaseerde applicatieprestaties:latentie en verborgen vertragingen

  3. Hoe uuid te gebruiken met het postgresql gist-indextype?

  4. SELECT-opdracht om percentage te berekenen