MySQL (o SQL Server, Oracle, DB2, ecc.) sono motori di database:sono applicazioni specifiche create per l'archiviazione e l'elaborazione dei dati e sono molto brave a farlo; possono anche essere eseguiti su un server diverso da quello in cui si trova il tuo programma principale, consentendo la condivisione del carico.
I file XML sono solo file di testo archiviati sulla tua macchina o su un'altra; devono essere letti, analizzati e scritti e solo il tuo programma può farlo. Sono anche molto, molto inefficienti, a causa della loro natura testuale:leggere e analizzare un file di testo è molto lento e modificarlo è anche peggio.
I file XML sono utili per memorizzare le impostazioni di configurazione e trasferire dati tra sistemi diversi, ma l'archiviazione e l'elaborazione dei dati dovrebbero sicuramente risiedere in un DBMS adeguato.
Inoltre, riferimento obbligatorio Joel Spolsky .