La table en question était une table de cumul / agrégation.
Alors ce n'est pas seulement bien, c'est "juste".
Et cela sent comme un tableau récapitulatif, car il commence par day
.
Avez-vous des index secondaires? N'oubliez pas que si vous utilisez InnoDB, le reste des colonnes PRIMARY KEY sera collé à la fin de l'index secondaire. Encore une fois, ce n'est pas nécessairement un problème.
100 millions de lignes, c'est beaucoup pour un cumul. On dirait que la table est trop fine. Autrement dit, peut-être que si (date, a, b, c, d) vous devez avoir 4 cumuls avec des PK comme (date, a, b, c), (date, b, c, d), (date, c, d, a), (date, d, a, b) (ou certaines combinaisons appropriées). Je fais cela, chacun peut ne faire que 10 millions de lignes, ce qui rend les rapports encore plus rapides, tout en ayant presque autant de flexibilité dans les rapports.
Ou peut-être passer à (semaine, a, b, c, d), conduisant à peut-être seulement 14 millions de lignes. (Probablement plus.)
Utilisation de PARTITION pour faciliter l'élagage --- Ingestion à grande vitesse --- Conseils pour l'entrepôt de données --- Tableaux récapitulatifs . Celles-ci résument bon nombre des techniques que j'ai développées dans plusieurs projets DW. Comme vous pouvez le déduire, chaque projet est différent. Le nombre «typique» de tableaux récapitulatifs (d'après mon expérience) est de 3-7. La cible dans le résumé est 10 lignes de faits -> 1 ligne de résumé. (Cela peut être une «médiane».) Dans un cas rare, j'ai résumé un tableau récapitulatif. Dans un autre cas rare, j'ai PARTITIONNÉ un tableau récapitulatif à bon escient; généralement, les tableaux récapitulatifs sont suffisamment petits pour être assez rapides pour un accès direct à partir d'une interface utilisateur.