Ich muss eine statistische Tabelle für ein Projekt führen, die aus einer Liste von Elementen und deren Verwendung besteht (denken Sie an eine Website, auf der Sie Seitenaufrufe zählen möchten). Jedes Mal, wenn ein Artikel instanziiert wird, muss ich die Verwendung des jeweiligen Artikels erhöhen.
Meine erste Implementierung ist:
statistics(
id integer NOT NULL,
name character varying(255) NOT NULL,
usage integer NOT NULL DEFAULT 0,
);
UPDATE statistics
SET usage = usage + 1
WHERE name = '<name>';
Meine Bedenken beziehen sich auf Leistung und Parallelität. Der Aktualisierungsprozess wird von mehreren zehn (möglicherweise 80-120) Geräten instanziiert und kann mehrmals pro Sekunde erfolgen. Meine Fragen lauten daher:
1) Wird diese Methode die Parallelität bewahren? (Wenn also mehr als ein Gerät das Update "gleichzeitig" anfordert , wird jede Anforderung gezählt?)
2) Können Sie einen besten Weg vorschlagen, um das Ergebnis zu erzielen? Ich erwarte, dass die Updates geladen werden, während die Lesevorgänge mich viel häufiger treffen würden. Gibt es eine spezielle Funktion zum Inkrementieren von Werten? Ich schaue auf "Sequenz", bin mir aber nicht sicher, ob das der richtige Weg ist ...
Vielen Dank im Voraus für jeden Rat
quelle