Podría intentar hacer uso de una base de datos basada en columnas. Este tipo de bases de datos son mucho mejores en consultas analíticas del tipo que está describiendo. Hay varias opciones:
http://en.wikipedia.org/wiki/Column-oriented_DBMS
Hemos tenido una buena experiencia con InfiniDB:
e Infobright también se ve bien:
Tanto InfiniDB como Infobright tienen ediciones comunitarias gratuitas de código abierto, por lo que recomendaría usarlas para obtener algunos puntos de referencia sobre los tipos de beneficios de rendimiento que podría obtener.
También es posible que desee analizar la partición de sus datos para mejorar el rendimiento.