Si vous recherchez un SGBD très performant et que vous n'en avez pas besoin pour être relationnel, vous pouvez envisager Cassandra - bien que ses avantages n'entrent en jeu que si vous avez un cluster de base de données au lieu d'un seul nœud.
Vous n'avez pas dit quelles sont les limites de l'architecture physique. Vous avez mentionné le sharding qui implique un cluster. Les clusters IIRC MySQL prennent également en charge le partitionnement.
Il serait également très utile de savoir quel niveau de simultanéité le système est censé prendre en charge et comment les données seraient ajoutées (goutte à goutte ou par lots).
Vous dites "Évidemment, je ne peux précalculer aucun des résultats d'agrégation car les combinaisons de filtres (et donc les ensembles de résultats) sont énormes."
C'est votre plus gros problème et ce sera le facteur le plus important pour déterminer les performances de votre système. Bien sûr, vous ne pouvez pas conserver des vues matérialisées de toutes les combinaisons possibles, mais votre plus grand avantage en termes de performances consistera à conserver des vues pré-agrégées limitées et à créer un optimiseur capable de trouver la correspondance la plus proche. Ce n'est pas si difficile.
C.