PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

PostgreSQL:count() или поддържане на брояч?

Може би против интуицията, вероятно ще откриете, че простото count подходът е по-бърз, освен ако работното ви натоварване не е много предубедено към четене.

Причината за това е, че ефектът от таблицата на брояча ще бъде сериализиране на актуализации, така че само една транзакция, която актуализира даден foo може да бъде в полет по всяко време. Това е така, защото актуализацията за тригера, който актуализира брояча, ще заключи този foo запис в таблицата на брояча и няма да го освободи, докато транзакцията не бъде върната назад или се ангажира.

Още по-лошо, ако транзакцията ви засяга повече от един foo както и още една, имате голям шанс една от транзакциите да бъде прекратена поради блокиране.

Придържайте се към просто броене, докато имате основателна причина да го промените.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PostgreSQL - накарайте две транзакции да се изпълняват едновременно

  2. SQLAlchemy Core групово вмъкване бавно

  3. postgresql, не можа да идентифицира колона в типа данни на запис

  4. Използване на psql за свързване към PostgreSQL в SSL режим

  5. Насочва всички потребители в група с пол мъжки