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

Format d'échange (XML, JSON...) Java Discussion :

XML vs MySQL


Sujet :

Format d'échange (XML, JSON...) Java

  1. #1
    Membre du Club Avatar de Tigrounette
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    132
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 132
    Points : 69
    Points
    69
    Par défaut XML vs MySQL
    Bonjour à tous,

    je vous explique mon petit problème : Il y a quelques mois j'ai commencé à programmer une application serveur (en Java donc) pour un jeu multijoueur. Le truc c'est que je savais uniquement programmer en javascript et que je manipulais souvent des fichiers XML.

    Dans mon apprentissage de ce merveilleux language (JAVA) j'avais décidé d'utiliser des fichiers XML comme base de donnée dans un premier temps. Je me disais que lorsque ma base de donné deviendrais conséquente je passerais à ce truc qu'on appelle MySQL.

    Le truc c'est que pour le moment, et contrairement à ce que je pensais au départ, XML me conviens tout à fait, et je n'ai aucun mal à me retrouver en ayant classé mes données dans differents fichiers XML, eux même classé dans differents dossiers. Mon application ouvre ces fichiers, modifie quelques attributs et noeud et sauvegarde le tout.

    Donc j'hésite

    Je précise que je ne connais strictement rien à MySQL. Je sais juste que c'est un truc relativement pratique et puissant pour stocker/utiliser une base de donnée.

    Ce que j'aimerais savoir, c'est s'il est possible que mon application gagne en rapidité en passant par MySQL, plutot que de gérer ma base donnée à la barbare sous forme XML ? (donc d'un point de vue purement technique)

    Et si les deux techniques se valent, quelles sont leurs points forts et points faibles ?

    Merci d'avance pour les conseils ^^

  2. #2
    Expert éminent sénior
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Points : 12 977
    Points
    12 977
    Par défaut
    Il est plus que probable que tu gagnes en vitesse. En effet les bases de données sont optimisée pour la recherche d'infos dans un grand nombre de fichier.

    Donc tout dépend de la taille de tes fichiers XML, s'ils sont relativement petits le gain ne sera que minime, par contre dès qu'ils seront un peu plus volumeux, tu devras plutôt t'orienter vers une base de données (MySQL, HSQLDB, derby, PostgresQL ou autres) qui seront plus adaptées et effectueront les traitements de recherche et insertion à ta place.

    Grosso modo tu ne garderas le xml que pour de fichiers de configuration. Pas plus.

  3. #3
    Expert éminent
    Avatar de GrandFather
    Inscrit en
    Mai 2004
    Messages
    4 587
    Détails du profil
    Informations personnelles :
    Âge : 54

    Informations forums :
    Inscription : Mai 2004
    Messages : 4 587
    Points : 7 103
    Points
    7 103
    Par défaut
    Si tu t'y retrouves dans ton code et que les performances sont correctes, pourquoi changer ?

    Ca va en tout cas demander un gros effort d'analyse, l'arborescence des données contenues dans un XML ne se plie pas toujours bien à une conversion en modèle relationnel... Et il va te falloir apprendre SQL, ce qui est très bien en soi et le langage n'est pas difficile, mais cet apprentissage est à prendre en compte.

    Tu as également la possibilité d'abandonner XML sous forme de fichiers de données, et passer à une base de données XML, comme eXist par exemple. Les performances seront améliorées (ces bases indexent les noeuds XML), et tu n'auras pas à faire un « refactoring » complet de ton application.

  4. #4
    Membre du Club Avatar de Tigrounette
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    132
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 132
    Points : 69
    Points
    69
    Par défaut
    Merci pour les conseil !

    En fait mes fichiers XML sont relativement petit (en général 20 ko). Et chaque joueurs à son répertoire avec sa petite dizaines de fichier XML.

    En fait je pensais pourvoir me passer d'un programme pour gérer une base de donnée en faisant de cette manière. Je sais pas trop comment ca marche mais pour moi, lorsque mon programme veut ouvrir un fichier, c'est l'indexation du système d'exploitation qui se charge de le trouver. (C'est une pure supposition en fait :p)

    Mais de toute facon, si l'apprentissage de MySQL ne se fait pas tout seul, ca me tente déjà beaucoup moins, moi je voyais plus un truc comme : Donne moi cette info, ou range moi ça

    Je vais rester comme ça, et je verais bien si à l'usage ma méthode est nulle ^^merci pour les réponses

  5. #5
    Membre confirmé Avatar de yjuliet
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Août 2006
    Messages
    362
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Août 2006
    Messages : 362
    Points : 460
    Points
    460
    Par défaut
    Citation Envoyé par Tigrounette
    moi je voyais plus un truc comme : Donne moi cette info, ou range moi ça
    Concernant MySQL et le langage SQL en général, c'est pas loin, c'est juste qu'il y a une syntaxe et quelques commandes à connaître pour lui faire faire ça.

    Pour ce qui est des fichiers XML, je ne sais pas le nombre de joueurs que tu as, mais si le nombre de joueurs est important (donc le nombre de fichiers d'autant plus), tu risques de te heurter aux lenteurs du système de fichier et des accès disque à chaque chargement/modification, qui sont mieux gérés par les BD que par Java. L'Utilisation de eXist pourrait être une solution assez intéressante à ton problème.

    Citation Envoyé par Tigrounette
    lorsque mon programme veut ouvrir un fichier, c'est l'indexation du système d'exploitation qui se charge de le trouver
    Oui, ton OS indexe les fichiers, mais il n'indexe pas les noeuds à l'intérieur de ton fichier XML, ce que fait eXist...

  6. #6
    Membre habitué Avatar de Emplyst
    Inscrit en
    Mars 2006
    Messages
    152
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 152
    Points : 148
    Points
    148
    Par défaut Mon point de vue sur la chose
    D'apres moi le xml doit se limiter au partage d'information entre divers entitees. Par exemple entre une compagnie A et une compagnie B. Ou un programme X et un programme Y. Une information stockee dans un xml sera facile a transposer vers une base de donnee MySQL et tu devrais envisager la chose si tu as la possibilitee.

Discussions similaires

  1. de XML vers mySQL
    Par abertaud dans le forum Outils
    Réponses: 1
    Dernier message: 19/01/2007, 21h37
  2. [XML] conversion xml en mysql
    Par php_de_travers dans le forum XQUERY/SGBD
    Réponses: 3
    Dernier message: 18/10/2006, 07h46
  3. [[xml]->[php]->[MySQL]] script php pour lire du xml
    Par koudjo dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 30/06/2006, 03h18
  4. exporation XML vers Mysql
    Par nazar76 dans le forum Administration
    Réponses: 1
    Dernier message: 12/06/2006, 15h58
  5. [JDBC + XML + Java] XML to MySQL
    Par mathieu77186 dans le forum JDBC
    Réponses: 4
    Dernier message: 28/03/2006, 13h50

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