XML vs MySQL

Eléphanteau du PHP | 13 Messages

28 mai 2007, 09:56

Bonjour,
j'aurai voulu savoir dans quel cas vous utilisez XML et MySQL, les raisons qui vous font choisir l'un ou l'autre, et ce qu'il en est au niveau vitesse.
J'aimerai faire un forum utilisant XML mais je ne sais pas si ce serai aussi rapide qu'avec MySQL.

Voila c'est tout :p
Merci ^^

Modérateur PHPfrance
Modérateur PHPfrance | 6037 Messages

28 mai 2007, 10:45

Nous avons déjà traité cette question :)

http://www.phpfrance.com/forums/viewtop ... hiers+base
Règle n°2 du webmaster : Toujours commencer par le HTML qu'on veut obtenir....toujours ! :priere:
J'aime apprendre de nouvelles choses.

Administrateur PHPfrance
Administrateur PHPfrance | 3088 Messages

28 mai 2007, 11:17

Si c'est pour un forum, la question ne se pose même pas, tu n'arriveras jamais à émuler "ORDER BY" efficacement avec un système de fichier, donc MySQL est la seule solution.

J'arriverais à envisager l'utilisation de fichiers pour de petites quantités de données pas très dynamiques, mais pour un forum tu n'auras ni les performances ni la simplicité, donc aucun intérêt.

PS: installe phpBB ou Phorum à la place et investis ton temps pour les customiser à tes besoins

ViPHP
ViPHP | 928 Messages

28 mai 2007, 16:45

Si c'est pour un forum, la question ne se pose même pas, tu n'arriveras jamais à émuler "ORDER BY" efficacement avec un système de fichier, donc MySQL est la seule solution.
C'est très facile à émuler un ORDER BY en PHP : usort().

En cas de tri multiple (tri par plusieurs critères successifs), il suffit de faire un callback du genre :
// Callback qui tri d'abord par item1, puis par item2
function _callback($a, $b)
{
   $cmp = strcmp($a['item1'], $b['item1'];
   if ($cmp != 0)
   {
      return ($cmp);
   }
   return (strcmp($a['item2'], $b['item2']));
}
Le principal problème de passer par un système de fichier reste principalement qu'on ne bénéficie pas des apports des bases de données relationelles (jointures, etc..), en plus des performanances en chute sur de gros volumes de données.

Mammouth du PHP | 1885 Messages

28 mai 2007, 16:50

PHP ne sera jamais aussi efficace qu'un système de gestion de bases de données avec système de gestion d'index. Donc inutile de créer une usage à gaz.
La programmation est l'expression de la poésie d'un programmeur
Génération PHP

Eléphanteau du PHP | 13 Messages

28 mai 2007, 22:35

En fait je n'ai pas trouvé de bon forum basé sur des fichiers donc je me disais que ça pourrait être intéressant. Et puis ça peut etre pratique pour les forum sur free.fr par exemple, qui plantent souvent à cause de la base de donnée.

En utilisant un système de cache et ... un fichier xml par sujet, plus d'autres pour les listes de sujets/forums (soyons fous) ça ne serait pas envisageable ?

Administrateur PHPfrance
Administrateur PHPfrance | 3088 Messages

28 mai 2007, 23:03

C'est très facile à émuler un ORDER BY en PHP : usort().
C'est de la triche, j'avais dit "émuler ORDER BY efficacement" :lol:
En fait je n'ai pas trouvé de bon forum basé sur des fichiers
Ça c'est plutôt une indication que le concept n'est pas viable :roll: Si mes souvenirs sont bons, les anciennes versions d'Ikonboard (Perl) utilisaient un système de fichier. Par la suite, Matt Mecham d'Invision avait un projet de forum à base de fichiers en PHP mais je crois qu'il a été abandonné il y a quelques années déjà.
les forum sur free.fr par exemple, qui plantent souvent à cause de la base de donnée.
Exactement. Ils plantent parce qu'ils surchargent la base de données, alors imagine effectuer le même boulot avec un truc qui n'est pas fait pour. Comme le dit si justement Xenon, on ne parviendra jamais à battre une base de données avec PHP.
ça ne serait pas envisageable ?
Ça dépend ce que tu entends par "envisageable". Avec beaucoup de boulot (de l'ordre de 12 mois selon le temps que tu y consacres) tu parviendras à un truc à peu près aussi performant que phpBB 2.0 sur la même machine à condition de ne jamais dépasser les 10 utilisateurs en ligne.

Eléphanteau du PHP | 13 Messages

28 mai 2007, 23:34

mouai... l'intérêt est tout de même assez limité, par rapport à l'investissement nécessaire, donc je crois que je vais laisser tomber cette idée. Je vais plutôt utiliser XML et les caches sur mon futur site, pour essayer d'en faire un truc sympathique...

Merci à tous :)