2010-11-12 26 views
4

Je crée un site qui effectuera beaucoup de recherches et je dois consigner des données sur chaque recherche faite pour une analyse ultérieure.Dois-je utiliser mysql pour conserver les journaux, ou simplement les transférer dans un fichier texte

Je prévois de répartir la charge entre un certain nombre de serveurs, puis chaque mois je téléchargerai et importerai tous les journaux dans une seule base de données mysql à ma fin pour analyse. À l'heure actuelle, j'ai cherché à configurer chaque serveur comme un «maître» mysql qui mettra à jour le serveur d'analyse esclave et servira essentiellement de sauvegarde.

Cependant, je vise l'efficacité. Évidemment, les avantages de la réplication mysql sont que j'ai toujours des journaux centralisés et que je n'ai pas besoin d'importer et de réinitialiser les fichiers journaux sur chaque serveur tous les mois.

Combien plus efficace serait-il de se connecter dans un fichier texte et simplement de vider ce journal chaque mois et de l'importer dans mysql de manière centralisée? Un vidage en clair est-il plus efficace, voire plus rapide que mysql?

Merci pour votre avis!

+3

Je ne sais pas quelle est la taille de ce projet, mais je travaille pour une entreprise qui enregistre des tonnes de requêtes mysql et nous passons aux gigaoctets par jour. Personnellement, je ferais des conneries à l'idée d'importer des mois de requêtes en même temps. Juste mes 2 cents. –

+0

Au départ, c'est petit, mais je suis un rêveur! Merci beaucoup pour vos pensées, vous êtes deux phrases ont complètement transformé ma pensée! Je vais utiliser mysql ... et je rêve de gigaoctets de logs par jour! – John

Répondre

1

Les bases de données sont solides pour faire plus que des insertions. Ils sont solides pour les mécanismes de verrouillage, la gestion des transactions, les recherches rapides, la mise en commun des connexions, et la liste continue. D'un autre côté, si tout ce que vous devez faire en général est d'écrire un morceau de données sur le disque, une base de données serait un surcoût considérable.

Compte tenu de ce qui précède, et puisque vous ne voulez écrire que des choses tout au long du mois, je vous recommande d'utiliser les journaux, et une fois par mois - prenez les journaux, les fusionner et les analyser. Vous pouvez alors décider si vous voulez les fusionner dans une base de données (si cela a du sens et vous donner une valeur ajoutée), ou si vous voulez simplement fusionner le texte.

En fait, vous souhaiterez peut-être enregistrer les instructions INSERT dans ce journal, puis l'utiliser comme script pour charger tout dans la base de données. Pensez-y :-)

+0

Eh bien, j'ai juste commenté ci-dessus que j'utiliserais mysql dans l'espoir qu'un jour je serais content de gigaoctets de journalisation tous les jours. Cependant, votre suggestion de génie INSERT m'a fait réfléchir ... peut-être que je vais hybrider mes pensées - les insertions mysql journal et utiliser cron pour télécharger et importer à mon emplacement central tous les jours. On dirait le meilleur des deux mondes! - Et merci! – John