Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Wie schreibt man einen effizienten Hitcounter für Webseiten?

Ein faszinierendes Thema. Das Erhöhen eines Zählers, so einfach es auch sein mag, hat eine Transaktion zu sein ... das heißt, es kann die gesamte DB länger als sinnvoll sperren!-) Es kann leicht zum Flaschenhals für das gesamte System werden.

Wenn Sie streng genaue Zählungen benötigen, diese aber nicht sofort auf dem neuesten Stand sein müssen, besteht mein bevorzugter Ansatz darin, die zählbaren Informationen an ein Protokoll anzuhängen (das Wechseln der Protokolle so oft wie nötig, um die Daten zu aktualisieren). Sobald ein Protokoll geschlossen ist (mit Tausenden von zählbaren Ereignissen darin), kann ein Skript es lesen und alles Erforderliche in einer einzigen Transaktion aktualisieren – vielleicht nicht intuitiv, aber viel schneller als Tausende von einzelnen Sperren.

Dann gibt es extrem schnelle Zähler, die nur statistisch sind genau -- aber da Sie nicht sagen, dass eine solche Ungenauigkeit akzeptabel ist, werde ich sie nicht näher erläutern.