2010-01-04 6 views
2

Je dois enregistrer quelques visites sur mysql sur mon site, puis les analyser, ce taux est d'environ 50 par seconde. l'insertion de chaque demande est veryslow et mauvaise, que pouvez-vous me conseiller?enregistrement rapide du site

+0

Quel framework web? Quelle version de Mysql? De quoi avez-vous besoin pour vous connecter éventuellement? Tous les hits et d'où ils viennent, etc, ou juste un compte par tranche de temps? – feihtthief

+0

propre cadre, mysql 5.0, j'ai besoin d'enregistrer des expositions de bannières – Ilya

+1

Un conseil: Le moteur de stockage ARCHIVE de MySQL est extrêmement rapide pour les INSERT, ce qui le rend idéal pour de nombreuses applications de journalisation. Il n'autorise pas DELETE ou UPDATE, mais ceux-ci ne sont généralement pas nécessaires pour la journalisation. http://en.wikipedia.org/wiki/MySQL_Archive –

Répondre

2

Avez-vous essayé de les mettre en file d'attente sur le serveur, puis d'insérer plusieurs demandes à la fois?

+0

où dois-je les mettre en file d'attente? – Ilya

0

Avez-vous envisagé d'avoir une table pour les visites par jour/heure/minute avec votre unité de temps en tant que clé, puis en insérant simplement des insertions dans cette table avec une clause on duplicate key.

1

G'day,

À moins que vous avez vraiment besoin de statistiques en temps réel, je vous suggère sérieusement connecter les demandes sur le disque, puis les pêche au chalut plus tard. Grâce à l'utilitaire rotatelogs d'Apache, vous pouvez obtenir des journaux d'analyse tous les jours à minuit ou toutes les heures au plus fort de l'heure si vous avez vraiment besoin d'un délai d'exécution plus rapide.

acclamations,

1

Vous pouvez utiliser INSERT DELAYED ce qui est idéal pour l'enregistrement, comme les files d'attente de la déclaration et renvoie la commande immédiatement le script. Je suis également d'accord avec @Jordan pour le moteur ARCHIVE.