Laquelle des méthodes est la plus rapide ?

WRInaute occasionnel
Bonjour,

Pour les article de mon futur site, je met le contenu dans un fichier texte et je prend certaines informations a partir de certaines fonctions pour les fichiers (filemtime,...) et d'autres info stockée dans la bdd
Je suis entrain de faire des test et je me pose la question si c'est plus rapide d'obtenir les info dans une base de données ou avec les fonctions pour les fichiers


ps: je met le contenu de l'article dans des fichiers texte car je suis limité en espace pour la bdd
 
WRInaute discret
La solution des fichier me semble plus rapide. La BDD peut cependant t'offrir des fonctionnalités de recherche, de tri, etc...

A toi de voir selon tes besoins...
 
WRInaute passionné
J'opterais pour la base de données. Beaucoup plus sûr comme méthode, le parcours de fichier reste une science plus hasardeuse... mais ce n'est que personnel.

:)
 
WRInaute discret
Hasardeuse? A mon avis, il suffit dêtre soigneux. En php, tu peux utiliser la méthode flock pour bloquer un fichier et éviter les problème d'accès concurentiels. Mais il est vrai que la BDD offre plus de souplesse, une grande partie de la logique business n'est plus de ta responsabilité ce qui est agréable.
 
WRInaute passionné
Personnellement, j'ai ré_écrit il y a 15 jours le site de mon profil pour lire les données dans un fichier XML.

Pourquoi allez vous me dire?

J'usqu'à présent, j'utilisais un système de mise en cache des pages (il y a un topic sur le sujet) pour soulager MYSQL qui bouffe beaucoup de ressources. Mon problème était que lorsque je modifiais une section du site, il me fallait effacer les pages correspondantes dans le cache (parfois plusieurs dizaines de millier!). Donc, maintenant j'ai totalement séparé le contenu (fichier XML) du contenant (fichier PHP) tout en conservant le principe de soulager MYSQL.

Comment ça marche?

Lors de l'appel d'une page du site, on cahrge le fichier XML nécessaire qui est en fait un script php rewrité qui, si le fichier XML n'existe pas le fabrique à partir de la BDD.

J'ai gagné 20% de ressources MYSQL par rapport à mon ancienne solution de cache (d'autant que bien pensé, un fichier XML sert pour plusieurs types de pages). J'ai également gagné 30% sur le nombre de hits apache et 10% sur le nombre de sockets UNIX actifs.

En résumé, mon petit dédié low-cost se porte de mieux en mieux malgré une forte augmentation de traffic (+150% en 3 mois!)
 
WRInaute accro
euh, un include et un fopen ne demandent pas les memes ressources ... je ne sais pas si faire des fopen est plus optimisé que faire des requetes! moi je te conseille de generer des pages html pour tes articles que tu n'aura qu'à inclure (ce que je fais, j'ai aps trouvé plus leger)
 
WRInaute passionné
e-kiwi a dit:
euh, un include et un fopen ne demandent pas les memes ressources ... je ne sais pas si faire des fopen est plus optimisé que faire des requetes! moi je te conseille de generer des pages html pour tes articles que tu n'aura qu'à inclure (ce que je fais, j'ai aps trouvé plus leger)

en termes de Hits: include et fopen c'est un hit. Une requete MYSQL c'est au moins trois hits.

en terme de mémoire utilisé, cela dépends des traitements et calculs pour une requete ou un include, mais uniquement de la taille du fichier pour un fopen.

Le probleme des pages html à inclure, comme je l'ai dit pécédemment, c'est trés limitatif en terme de souplesse d'évolution et puis cela ne separe pas le contenu du contenant.

Avec mon ancien système de cache (include d'un fichier html, j'avais autant de fichier sur dossier cache du serveur que de pages soit prés de 150.000!) avec mon nouveau système de cache (parsing XML) j'en ai 3 fois moins! :D
 
WRInaute occasionnel
e-kiwi a dit:
euh, un include et un fopen ne demandent pas les memes ressources ... je ne sais pas si faire des fopen est plus optimisé que faire des requetes! moi je te conseille de generer des pages html pour tes articles que tu n'aura qu'à inclure (ce que je fais, j'ai aps trouvé plus leger)

je viens de faire des test entre ta methode (avec un include) et avec les fonctions pour lire un fichier -> ta methode semble etre plus rapide donc je vais l'utiliser :lol:


fandecine a dit:
Avec mon ancien système de cache (include d'un fichier html, j'avais autant de fichier sur dossier cache du serveur que de pages soit prés de 150.000!) avec mon nouveau système de cache (parsing XML) j'en ai 3 fois moins! :D

c'est pas pour créer un systeme de cache, c'est pour afficher des article donc je ne crois pas que ca ira dans ce cas si.
Mais je suis quand meme intéréssé par ton systeme pour autre chose mais je ne connais pas le parsing XML. Comment tu t'y prend?
 
WRInaute occasionnel
j'ai voulu utiliser la methode de e-kiwi mais j'ai un problème:
des que j'utilise include, le texte est affiché alors que je dois effectuer un traitement avant de l'afficher.
Il n'y a pas moyen de mettre l'include dans une variable sans l'afficher?
 
WRInaute impliqué
Les 2! Enregistre ton texte dans la base et dans un fichier texte mais lors de l'affichage de la page, sélectionne les infos dans la BDD mais pas le texte que tu récupéreras depuis le fichier texte.

Ca consomme juste un peu plus de place mais c'est le plus léger (le parsing XML consomme quand même plus de CPU qu'une simple requête+ouverture de fichier sans analyse) et le plus sécurisé.
 
WRInaute occasionnel
The Jedi a dit:
Les 2! Enregistre ton texte dans la base et dans un fichier texte .....

J'enregistre le contenu dans un fichier texte car si j'enregistre le contenu dans la bdd, ma base sera vite remplie.
Donc ta proposition n'ira pas mais merci quand meme
 
WRInaute accro
>> des que j'utilise include, le texte est affiché alors que je
>>dois effectuer un traitement avant de l'afficher.

ah ben oui, mon systeme se rapproche d'un systeme de cache, si tu dois faire des traitements sur tes articles, cela ne marche plus. tu ne peux pas stocker tes articles finalisés dans tes fichiers ?
 

➡️ Offre MyRankingMetrics ⬅️

pré-audit SEO gratuit avec RM Tech (+ avis d'expert)
coaching offert aux clients (avec Olivier Duffez ou Fabien Faceries)

Voir les détails ici

coaching SEO
Discussions similaires
Haut