Vous voulez Gearman - il mettra les requêtes en file d'attente et les insèrera au fur et à mesure que la base de données sera prête pour elles, afin de ne pas surcharger votre serveur de base de données.
Il y a un article récent (et de qualité) sur l'utilisation des bases de données pour la journalisation ici , qui (résumé) dit :
- Utiliser MyISAM avec des insertions simultanées
- Faites pivoter les tables quotidiennement et utilisez UNION pour interroger
- Utilisez des insertions différées avec MySQL ou un agent de traitement des tâches comme Gearman (bien que MySQL ait une limite sur le nombre de celles-ci, il les mettra en file d'attente avant de les supprimer silencieusement !)
HighScalability écrire sur Gearman .
Si vous voulez vraiment éviter cela, vous pouvez écrire les instructions SQL brutes dans un fichier et les traiter avec ce cronjob :
mysql loggingDB logTable < fullLog.sql && > fullLog.sql