MySQL (ou SQL Server, Oracle, DB2, etc.) são mecanismos de banco de dados:são aplicativos específicos que foram criados para armazenamento e processamento de dados e são muito bons nisso; eles também podem ser executados em um servidor diferente daquele em que seu programa principal está, permitindo o compartilhamento de carga.
Arquivos XML são apenas arquivos de texto armazenados em sua máquina ou em outra; eles precisam ser lidos, analisados e gravados, e somente seu programa pode fazer isso. Eles também são muito, muito ineficientes, por causa de sua natureza de texto:ler e analisar um arquivo de texto é muito lento, e modificá-lo é ainda pior.
Arquivos XML são bons para armazenar definições de configuração e passar dados entre sistemas diferentes, mas o armazenamento e o processamento de dados devem definitivamente residir em um SGBD adequado.
Além disso, referência obrigatória de Joel Spolsky .