MySQL (ou SQL Server, Oracle, DB2, etc.) sont des moteurs de base de données :ce sont des applications spécifiques qui ont été conçues pour le stockage et le traitement des données, et qui sont très douées pour cela ; ils peuvent également s'exécuter sur un serveur différent de celui sur lequel se trouve votre programme principal, ce qui permet le partage de la charge.
Les fichiers XML ne sont que des fichiers texte stockés sur votre machine ou une autre; ils doivent être lus, analysés et écrits, et seul votre programme peut le faire. Ils sont également très, très inefficaces, en raison de leur nature textuelle :lire et analyser un fichier texte est très lent, et le modifier est encore pire.
Les fichiers XML sont utiles pour stocker les paramètres de configuration et transmettre des données entre différents systèmes, mais le stockage et le traitement des données doivent absolument résider dans un SGBD approprié.
Aussi, référence Joel Spolsky obligatoire .