8795 sujets

Développement web côté serveur, CMS

Bonjour,
En faisant quelques recherches diverses, je suis tombé sur des CMS qui stockent apparemment leurs données dans des fichiers XML plutôt que dans une base de données : NibbleBlog et PluXml.
Et je me demande quels sont les avantages/inconvénients de cette méthode pour ce qui est de la vitesse d'accès aux données. Il me semble que les bases de données comme MySQL sont optimisées pour l'accès et la recherche de données stockées. Est-ce que l'utilisation de fichiers XML à la place est vraiment contre-productif et intéressant uniquement dans le cas d'un hébergement sans BdD ? ou bien est-ce que les deux solutions se valent ?
Salut,

Un partie de la réponse dépends de la taille de la base de donnée (quelle soit stockée dans une BDD ou dans un fichier XML)

1) Dans le cas d'un fichier XML, le fichier devra être parcouru pour trouver et extraire la donnée. Si le fichier est très gros, cela prendra du temps de la ressource processeur et mémoire. J'ai fait cette experience avec l'utilisation de gros fichiers XML en langage Perl.

2) La Base SQL n'a pas ses problème de temps d'accès à la donnée, mais peu apporter des problèmes de sécurité au niveau du serveur. il y a beaucoup d'attaque sur les accès a phpmyadmin par exemple.

il y a plein d'autres avantages et inconvénients, mais je pense que ceux là sont les principaux
mamax a écrit :
1) Dans le cas d'un fichier XML, le fichier devra être parcouru pour trouver et extraire la donnée. Si le fichier est très gros, cela prendra du temps de la ressource processeur et mémoire. J'ai fait cette experience avec l'utilisation de gros fichiers XML en langage Perl.

Je ne sais pas comment fonctionnent les CMS sur lesquels je suis tombé mais je me posais la question par rapport à l'utilisation de plusieurs fichiers XML, pas un gros qui remplacerait toute la BdD. Par exemple, sur un site de e-commerce, au lieu d'avoir une BdD qui contient des produits répartis sur plusieurs lignes de plusieurs table jointes (une ligne dans "product", trois lignes dans "photos", etc.), on aurait un fichier XML par produit (une fiche produit = un fichier sur le disque).

J'y vois des avantages en ce qui concerne l'organisation des données, leur sauvegarde... mais je ne suis pas sûr que les performances soient au rendez-vous.
Salut,

Les bases de données relationnelles comme MySQL apportent également un certain nombre de mécanismes pour gérer les relations (qui l'eut cru ?) entre les différentes données...

Je ne vois pas trop comment tu pourrais faire une jointure en XML, par exemple. Ou comment faire une recherche dans tes produits s'il y a un fichier xml par produit...
Thomas D. a écrit :
Ou comment faire une recherche dans tes produits s'il y a un fichier xml par produit...

Ça, c'est pas faux... Smiley confused
Tu peux cumuler les deux si besoin est pour soulager ta base de donnée.

Si le fichier XML stocké en local n'existe pas, créer le fichier par extraction des données en BDD.

Si le fichier existe, tu lis le fichier XML.

Ainsi tu peux avoir une BDD complexe, mais avec du cache en XML.

Après, cela peut être carrément un bout de page.

Quel est ton projet, quel taille, nombre de visiteur estimé, que propose t'il etc ... je pense que le choix de techno dépendra de ce que tu souhaite faire.

Parser du XML, c'est franchement lourd. BDD avec Mysql très efficace !
Super_baloo8 a écrit :
Quel est ton projet, quel taille, nombre de visiteur estimé, que propose t'il etc ... je pense que le choix de techno dépendra de ce que tu souhaite faire.

C'est pas pour un projet en particulier, c'était plutôt une interrogation générale après être tombé sur des CMS sans BdD : "Tiens, des CMS qui reposent sur du XML ? Les performances suivent ? Si c'est viable, pourquoi est-ce que tout le monde ne fait pas comme ça ? ce serait vachement plus pratique et logique en ce qui concerne la structure du site."

Sur le coup, je n'ai pas du tout pensé à l'usage des données (recherches dans un document, etc.).
Dites le moi si je dis un "bêtise", mais il semble qu'à l'époque les CMS basé sur XML était pour les solution d'hébergement sans base de données.

Maintenant, c'est pratiquement inclus partout, donc ... Je pense vraiment que le choix de techno dépend très fortement de ce que tu souhaite faire.

Car utiliser l'un à des avantages dans certains cas, et utiliser l'autre à d'autre avantages.

Tu peux faire une recherche sur plusieurs fichiers XML, mais je m'imagine rapidement le "bordel" dans le code pour obtenir la même chose qu'avec une BDD ... affreux ^^