Con così tante voci ti conviene usare un database per questioni di performance e sicurezza dei dati. Oltretutto con le un buono schema di db puoi alleggerire il carico anche sul client.
Secondo mè è impossibile gestire una quantità così grande di dati in maniera efficente usando file .xml.