Aller au contenu

database vs fichier sur disque


allegro

Sujets conseillés

Je ne me place pas d'un point de vu general mais dans le cas ou les données a stocker sont tres nombreuses simples et toutes du meme type. Je prends un exemple :

Supposons que je veuille enregistrer des log de connections par ip et y acceder facilement (toujours par ip)

1 ere option un scripte php interagit avec une base de donnee had hoc type mysql

2 eme option un scripte php interagit avec une arborescence de fichier sur disque :

- a chaque ip utilisateur correspond un fichier (texte) avec ses stats

- ces fichiers sont distribués dans un arbre de dossiers de maniere a ne pas avoir trop de fichier par dossier pour la gestion des fichiers sur disque soir rapide :

Par exemple le fichier comportant les stats pour l'ip 212.123.456.789 sera htdocs\21\21\23\45\67\89\stat.txt

Question quelle strategie va demander le moins de ressources CPU et Memoire ? Est ce que si je suis hebergé sur un cluster qui me donne un quota d'utilisation CPU et RAM mais qui me donne beaucoup d'espace disque la deuxieme solution presente un interet ?

En fait pour a deuxieme solution c'est je pense le disque dur lui meme qui via sa gestion de l'aborescence des fichiers va prendre en charge la structure des donnees

Merci d'avance de votre avis et ou experience

Lien vers le commentaire
Partager sur d’autres sites

Il y a deux conditions pour que je préfère stoquer en fichier texte plutôt qu'en base de données:

- Le volume n'est pas trop important

- Je n'ai pas de tri à faire entre plusieurs fichier

Et finalement cela englobe la plus part des cas.

Ensuite j'ai cru remarquer que la présence de nombreux fichiers textes (des dizaines de milliers) sur un serveur peut le ralentir s'il est mal configuré. Alors il faut faire appel à Dan le superman de l'infogérance.

Lien vers le commentaire
Partager sur d’autres sites

Ensuite j'ai cru remarquer que la présence de nombreux fichiers textes (des dizaines de milliers) sur un serveur peut le ralentir s'il est mal configuré. Alors il faut faire appel à Dan le superman de l'infogérance.

oui justement il me semble que dans ce cas il faut veiller a ne pas avoir trop de fichier par repertoire.

Sinon as tu eu l'occasion de faire une comparaison avec une solution base de donnée ? As tu eu l'impression d'utiliser moins de ressources avec des fichiers textes ?

Lien vers le commentaire
Partager sur d’autres sites

Pour trancher entre DB et fichiers texte cela dépend de l'utilisation que vous comptez faire...

Si c'est pour faire un log que vous ne consulterez que rarement (par ex. en cas d'activité suspecte) des fichiers texte devraient suffire.

Par exemple le serveur Apache utilise des fichiers délimités en format texte.

Ceci dit je ne vois pas la raison de multiplier ces fichiers. Vous pouvez faire un fichier aggloméré avec une ligne par connection et tronquer ce fichier de manère périodique.

Je ne suis pas sûre de ce que vous voulez enregistrer exactement comme connection mais voir si ça ne fait pas double emploi avec le log Apache existant par exemple.

Si vous comptez faire beaucoup d'analyses une DB serait plus indiquée probablement car plus performante pour des queries.

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...