Talvez contra-intuitivamente, você provavelmente descobrirá que o simples
count
A abordagem é mais rápida, a menos que sua carga de trabalho seja muito tendenciosa para leituras. A razão para isso é que o efeito da tabela do contador será serializar as atualizações, portanto, apenas uma transação que está atualizando um determinado
foo
pode estar em vôo a qualquer momento. Isso porque a atualização do gatilho que atualiza o contador travará esse foo
's na tabela do contador e não a liberará até que a transação seja revertida ou confirmada. Pior ainda, se sua transação afetar mais de um
foo
e o mesmo acontece com outra, você tem uma grande chance de uma das transações ser abortada devido a um impasse. Atenha-se a uma contagem simples até ter uma boa razão para alterá-la.