База данных или xml?
Нет никаких вариантов. XML - это удобный формат для обмена информацией между принципиально разными системами (как 1С и сайт, например). На этом его достоинства заканчиваются, и больше его нигде использовать нет смысла.
Как только речь заходит о постоянной обработке данных и скорости этой обработки - естественно, логично это делать при помощи баз данных, специально для этого придуманных и давно отполированных лучше, чем любые ваши велосипеды.
Идеальный вариант - комбинированный:
Медленно, но удобно и универсально - схема EAV (удобнее для частичного обновления)
А для быстрой отдачи другой способ - СУБД типа Full-Text-SearchМне нужно осознать нюансы разных вариантов, минусы, оптимизацию (что быстрее - прочесть xml или сделать выборку из 3х БД, например?)
Почему из трех БД?
Из 3-х таблиц одной БД. Конечно из БД быстрее.
Но! Если вы разово загрузите в оперативную память из XML, построите нужную структуру и ваша серверная часть не будет перезапускаться - то из XML (в оперативной памяти) будет быстрее.