IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

[SQL] [Avis] - Xml ou SQL pour afficher 15 petites news ?


Sujet :

PHP & Base de données

  1. #1
    Membre averti Avatar de ShinJava
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    413
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 413
    Points : 357
    Points
    357
    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

  2. #2
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    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.

  3. #3
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    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.

  4. #4
    Nouveau membre du Club
    Inscrit en
    Février 2006
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 53
    Points : 30
    Points
    30
    Par défaut
    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.

  5. #5
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    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.

  6. #6
    Membre averti Avatar de ShinJava
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    413
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 413
    Points : 357
    Points
    357
    Par défaut
    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

  7. #7
    Rédacteur

    Homme Profil pro
    Geek entrepreneur
    Inscrit en
    Novembre 2004
    Messages
    1 224
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Geek entrepreneur

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 224
    Points : 2 373
    Points
    2 373
    Par défaut
    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.

  8. #8
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    +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.

  9. #9
    Membre averti Avatar de ShinJava
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    413
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 413
    Points : 357
    Points
    357
    Par défaut
    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

  10. #10
    Rédacteur

    Homme Profil pro
    Geek entrepreneur
    Inscrit en
    Novembre 2004
    Messages
    1 224
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Geek entrepreneur

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 224
    Points : 2 373
    Points
    2 373
    Par défaut
    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

  11. #11
    Membre averti Avatar de ShinJava
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    413
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 413
    Points : 357
    Points
    357
    Par défaut
    Citation Envoyé par hugo123
    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

  12. #12
    Membre averti Avatar de ShinJava
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    413
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 413
    Points : 357
    Points
    357
    Par défaut
    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

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 10
    Dernier message: 09/08/2016, 18h56
  2. [Dates] Fonction pour afficher les dernières news
    Par Justone22 dans le forum Langage
    Réponses: 23
    Dernier message: 04/08/2008, 22h57
  3. Besoin d'un avis : XML / SQL
    Par Bardack dans le forum Format d'échange (XML, JSON...)
    Réponses: 4
    Dernier message: 17/03/2007, 17h22
  4. [SQL] probleme de syntaxe pour afficher une photo en php
    Par carmen256 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 11/04/2006, 21h48
  5. Requête SQL pour afficher un tri
    Par arnaud_verlaine dans le forum Langage SQL
    Réponses: 4
    Dernier message: 16/11/2005, 15h27

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo