Vielleicht werden Sie entgegen der Intuition feststellen, dass das einfache count
Ansatz ist schneller, es sei denn, Ihre Arbeitslast ist stark auf Lesevorgänge ausgerichtet.
Der Grund dafür ist, dass der Effekt der Zählertabelle darin besteht, Aktualisierungen zu serialisieren, also nur eine Transaktion, die einen bestimmten foo
aktualisiert kann jederzeit im Flug sein. Das liegt daran, dass das Update für den Trigger, der den Zähler aktualisiert, diesen foo
sperrt den Eintrag von in der Zählertabelle und gibt ihn erst frei, wenn die Transaktion rückgängig gemacht oder festgeschrieben wird.
Schlimmer noch, wenn Ihre Transaktion mehr als einen foo
betrifft und eine andere auch, besteht eine hohe Wahrscheinlichkeit, dass eine der Transaktionen aufgrund eines Deadlocks abgebrochen wird.
Halten Sie sich an eine einfache Zählung, bis Sie einen guten Grund haben, sie zu ändern.