U wilt Gearman - het zet de verzoeken in de wachtrij en voegt ze in wanneer de database er klaar voor is, zodat u uw DB-server niet overbelast.
Er is een recent (en kwalitatief) bericht over het gebruik van databases voor het loggen hier , die (samengevat) zegt:
- Gebruik MyISAM met gelijktijdige invoegingen
- Draai tabellen dagelijks en gebruik UNION om vragen te stellen
- Gebruik vertraagde invoegingen met MySQL of een taakverwerkingsagent zoals Gearman (hoewel MySQL een limiet heeft op het aantal van deze invoegingen, zal het in de wachtrij staan voordat ze stilletjes worden verwijderd!)
HighScalability schrijf op Gearman .
Als je dit echt wilt vermijden, kun je de onbewerkte SQL-statements naar een bestand schrijven en ze met deze cronjob verwerken:
mysql loggingDB logTable < fullLog.sql && > fullLog.sql