Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD
PHP & SGBD Forum d'entraide sur les SGBD avec PHP. Avant de poster : FAQ BDD, toutes les FAQ PHP, cours BDD et sources BDD
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 23/03/2006, 07h38   #1
Membre confirmé
 
Avatar de ShinJava
 
Inscription : septembre 2004
Messages : 411
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 411
Points : 287
Points : 287
Par défaut [SQL] [Avis] - Xml ou SQL pour afficher 15 petites news ?

Bonjour tout le monde,
J'espere que vous allez bien.

Je suis entrein de developper un petit site où j'affiche les 15 dernières news (5 news dans 3 categories différentes) dans le cadre de gauche sur toutes les pages du site. Les infos que je fourni sont le titre, la date, le lien et l'id de la news.
Les mises à jour sont de 0 à 2 news par jour.

Et là je me demandais : mieux vaut-il afficher ces 15 dernières news grâce à une requete vers la base de donnée ? Ou bien est-il préférable dans ce cas-ci d'aller chercher les news dans un fichier xml (mise a jour), ce qui eviterais une requete SQL à chaque fois.

Qu'en est-il au niveau des performances ? Est-ce plus rapide d'aller chercher les infos dans le fichier xml ?

Merci beaucoup pour votre interêt sur ce sujet car c'est la première fois que je m'attaque au XML.

A bientot !
++
ShinJava
ShinJava est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/03/2006, 09h58   #2
Expert Confirmé Sénior
 
Avatar de Mr N.
 
Inscription : septembre 2004
Messages : 5 421
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 5 421
Points : 5 835
Points : 5 835
Et le reste de ton site il est sous sql ?
Moi je prendrais sql:
- persistence cohérente sur l'ensemble du site.
- recherche plus facile
- suivant la version de php, le parsing d'un xml est plus complexe (lent ?) que d'attaquer mysql
- économie d'espace disque. Des lignes dans une table sql prennent à mon avis moins de place qu'un flux xml qui est par nature extremement verbeux.
Mr N. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/03/2006, 10h02   #3
Rédacteur
 
Avatar de Yogui
 
Homme Guillaume Rossolini
Directeur technique
Inscription : février 2004
Messages : 13 720
Détails du profil
Informations personnelles :
Nom : Homme Guillaume Rossolini
Localisation : France

Informations professionnelles :
Activité : Directeur technique

Informations forums :
Inscription : février 2004
Messages : 13 720
Points : 17 355
Points : 17 355
Salut

Je prendrais également la solution du SQL pour éviter de dupliquer tes infos (elles sont visiblement déjà dans la BDD), cela t'évitera des maux de tête pour la synchronisation.

Cela dit, je ne suis pas d'accord avec Mr N. quant à la rapidité : si la presque totalité des fils RSS des gros sites sont générés à intervalle régulier, il doit y avoir une raison...
Évidemment, je me place dans l'optique d'un fil RSS pour tes news. Si elles sont uniquement à usage interne, le SQL est largement plus rapide.
__________________
Mes articles - Zend Certified Engineer (PHP + Zend Framework)
Ressources PHP - Ressources Zend Framework
Yogui est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/03/2006, 10h03   #4
Futur Membre du Club
 
Inscription : février 2006
Messages : 53
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 53
Points : 15
Points : 15
Si tu n'a pas besoin de modifier tes news utilise plutot du xml sa évite de gérer une base de donnée.

Mais je trouve pas trés beau un page xml, en tout cas pour ce que j'en connait(c'est a dire plutot peu).
Une base de donnée c'est mieux surtout si tu veut gérer des catégorie.

Il me semble( sous réserve) que allez chercher des infos dans un fichier est plus rapide que dans une base de donnée.
anto48_4 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/03/2006, 10h25   #5
Expert Confirmé Sénior
 
Avatar de Mr N.
 
Inscription : septembre 2004
Messages : 5 421
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 5 421
Points : 5 835
Points : 5 835
Citation:
Envoyé par Kirkis
Cela dit, je ne suis pas d'accord avec Mr N. quant à la rapidité : si la presque totalité des fils RSS des gros sites sont générés à intervalle régulier, il doit y avoir une raison...
Évidemment, je me place dans l'optique d'un fil RSS pour tes news. Si elles sont uniquement à usage interne, le SQL est largement plus rapide.
La on parle de deux choses différentes. ShinJava se posait la question "comment enregistrer mes news".
L'approche XML était "j'écris et je lis un fichier XML et j'affiche les infos contenues dedans sur mon site". Alors qu'un fils RSS est envoyé tel quel vers le client, à lui de se charger d'extraire les infos dedans.

Une approche pourrait-être j'écris et je lis dans un flux RSS. Ainsi on fait d'une pierre deux coups : on peut afficher les news sur son site et on propose un fil RSS. Ca veut dire qu'il faut integrer un parser de flux rss et ca tombe bien car ça existe déjà.

Et là on ouvre les yeux, on prend un peu de recul et on se dit "pourquoi afficher seulement mes news sur mon site ?" On dispose d'un parser de flux rss donc on pourrait très bien afficher des infos provenant d'autres site affiliés.

Donc si on combine le tout, une solution intéressante pourrait être :
1- stockage des news dans une bd
2- implémentation d'un rss.php qui se chargent de générer un fil rss en fonction de ce qu'il y a dans la bd
3- intégration d'un lecteur de rss made in php pour pouvoir afficher des flux rss au sein du site
4- on configure le lecteur pour appeler le sien (rss.php) + d'autres

Sachant que le 1 et 2 doivent, pour des soucis de performances, gérer un cache afin de ne pas surcharger les serveurs pour rien. Le 4 aussi il faut faire attention à ne pas se faire blacklister des autres serveurs si on demande trop souvent les fils RSS.
Mr N. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/03/2006, 10h29   #6
Membre confirmé
 
Avatar de ShinJava
 
Inscription : septembre 2004
Messages : 411
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 411
Points : 287
Points : 287
Tout d'abord merci pour vos réponses.

Mr.N : oui tout le reste du site est en SQL. Au niveau de l'espace disque, ce n'est pas réélement un probleme vu que ca sera un fichier .xml que j'ecraserais à chaque mise à jour du site et qui ne comporteras que les 15 dernieres news.

Kirkis : en fait le but de cette manoeuvre est d'alleger les requetes vers la base de donnée. Car sur chaque page du site , les 15 dernieres news sont affichés sur la gauche (donc requete SQL à chaque fois).

anto48_4 : c'est le principe, utiliser le moins possible la base de donnée pour des parties quasi statiques. Je comptais pas faire un site pur xml mais juste stocké des infos dans un fichiers xml et aller les chercher.

Tout le monde (lol) : Pour résumer et apporter plus de détails sur ce que je pensais faire.

_ A chaque fois que l'admin rajoute une news, le fichier .xml est regenerer avec les dernieres news.
_ Du coup dès qu'un utilisateur va sur le site, il voit les news generer a partir du fichier xml, ce qui evite une requete vers la BDD à chaque generation de page.
_ Cette méthode ne serait utiliser que pour les pages quasi statiques.

Un autre exemple concret :
Les liens vers d'autres sites sont stockés dans une table MySQL. L'admin peut en rajouter ou en effacer à sa guise. Mais c'est une partie qui demande tres peu de mise a jour.
Du coup à chaque fois qu'un utilisateur va sur la page Lien, les liens sont generé grace à une requete SQL.
Est - ce que dans ce cas précis, ne vaut-il pas mieux utiliser un fichier .xml ? (ou un fichier texte peut etre ?)
Et au niveau de la rapidité/performance qu'en est-il ?
Je pourrais bien sur essayer tout ça, mais je me suis jamais lancé dedans et ca se trouve c'est une mauvaise idée... d'ou mon post sur le forum

Merci d'avance pour vos précisions.

++
ShinJava
ShinJava est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/03/2006, 10h35   #7
Rédacteur
 
Homme
Geek entrepreneur
Inscription : novembre 2004
Messages : 1 035
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Geek entrepreneur

Informations forums :
Inscription : novembre 2004
Messages : 1 035
Points : 1 813
Points : 1 813
En fait ta problématique ressemble a celle du cache.
Du coup il est tout a fait possible de laisser tes données en base de données et d'utiliser un moteur de template (smarty par exemple) qui utilisera un cache afin d'éviter de consulter la BD sans arrêt.
hugo123 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/03/2006, 10h41   #8
Expert Confirmé Sénior
 
Avatar de Mr N.
 
Inscription : septembre 2004
Messages : 5 421
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 5 421
Points : 5 835
Points : 5 835
+1 hugo

XML n'est pas là pour des prunes ou pour faire bien sur son CV. XML te permet d'échanger des données entre différentes appli sans avoir à te soucier du format.
Si tu utilises xml juste pour stocker je pense que c'est une mauvaise idée. Si par contre une autre partie de ton appli ou une autre appli s'en sers également, alors là ok.
Pourquoi ne pas stocker directement au format html ? du coup tu fais une inclusion directement de ton fichier, pas besoin de le parser pour en extraire les information. Et du cote de l'admin un simple editeur wysiwyg ferait l'affaire.

Mais hugo a raison. Ce qu'il te faut c'est un système de cache. Tu continue à tout stocker en BD et tu utilise un cache pour chaque requête.
Mr N. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/03/2006, 11h00   #9
Membre confirmé
 
Avatar de ShinJava
 
Inscription : septembre 2004
Messages : 411
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 411
Points : 287
Points : 287
hugo123 :
merci beaucoup, je connaissais pas du tout ce principe, je vais y aller jeter un coup d'oeil

Mr.N :
Je n'avais pas compris ton message concernant l'espace disque. Ne prend pas en compte pas ma réponse plus haut. Je vois exactement où tu voulais en venir maintenant.
Sinon merci pour les précision sur le XML, j'en avais besoin. Je comprend mieux son principe.
Maintenant, ton idée de stocker au format HTML est excellente ! Je vais l'appliquer.
Sinon du coté de l'admin , y'a aucun souci, je lui ai deja fait son editeur wysiwyg (un truc tres basique).

Je vais aussi me pencher sur le système de cache quand même. Ca ma l'air interessant.
Voila voila si personne n'a rien à ajouter, je metterais le sujet en résolu.

Merci à tous de m'avoir éclairer sur ce sujet.
Bonne journée

++
ShinJava
ShinJava est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/03/2006, 11h43   #10
Rédacteur
 
Homme
Geek entrepreneur
Inscription : novembre 2004
Messages : 1 035
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Geek entrepreneur

Informations forums :
Inscription : novembre 2004
Messages : 1 035
Points : 1 813
Points : 1 813
Citation:
Maintenant, ton idée de stocker au format HTML est excellente ! Je vais l'appliquer.
C'est le principe du cache justement.

site de smarty : http://smarty.php.net
hugo123 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/03/2006, 11h57   #11
Membre confirmé
 
Avatar de ShinJava
 
Inscription : septembre 2004
Messages : 411
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 411
Points : 287
Points : 287
Citation:
Envoyé par hugo123
Citation:
Maintenant, ton idée de stocker au format HTML est excellente ! Je vais l'appliquer.
C'est le principe du cache justement.

site de smarty : http://smarty.php.net
Ah ok !
Je vais quand même essayer de le coder en premier lieu pour me faire la main Vu que l'ecriture de fichier est un domaine que je ne connais pas sous php, ca va me faire du bien =)
Ensuite j'utiliserais surement smarty.
Merci mille fois Hugo123 !

++
ShinJava
ShinJava est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/03/2006, 14h25   #12
Membre confirmé
 
Avatar de ShinJava
 
Inscription : septembre 2004
Messages : 411
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 411
Points : 287
Points : 287
Bon bon , juste pour vous tenir au courant.

J'ai mis en place le systeme de page statique juste pour les menu de gauche, je peux vous dire qu'en peformance ca y gagne.

Quand je faisais appel à la BDD, la page principale se chargeait entre 0.02 et 0.06 sec.

Maintenant depuis que j'ai mis le systeme de page statique (qui change à chaque mise a jour bien sur), la page principal se charge entre 0.000927 et 0.000934 sec !
C'est un truc de fou... J'ai bien fais de poser la question. En plus avec le systeme de template pour un site complet ca doit être encore mieux !

Merci encore !!!

++
ShinJava
ShinJava est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 07h05.


 
 
 
 
Partenaires

Hébergement Web