Bei der fraglichen Tabelle handelte es sich um eine Rollup- / Aggregationstabelle.
Dann ist es nicht nur gut, es ist "richtig".
Und es riecht nach einer Übersichtstabelle, da es mit beginnt day
.
Haben Sie Sekundärindizes? Beachten Sie, dass bei Verwendung von InnoDB die restlichen PRIMARY KEY-Spalten am Ende des Sekundärindex angeheftet werden. Auch dies ist nicht unbedingt ein Problem.
100 Millionen Zeilen sind eine Menge für ein Rollup. Es hört sich so an, als wäre der Tisch zu feinkörnig. Das heißt, vielleicht sollten Sie stattdessen (Datum, a, b, c, d) 4 Rollups mit PKs haben, wie (Datum, a, b, c), (Datum, b, c, d), (Datum, c, d, a), (Datum, d, a, b) (oder einige geeignete Kombinationen). Dabei sind möglicherweise nur 10 Millionen Zeilen vorhanden, wodurch Berichte noch schneller erstellt werden und die Berichtsflexibilität nahezu gleich bleibt.
Oder wechseln Sie zu (Woche, a, b, c, d), was zu möglicherweise nur 14 Millionen Zeilen führt. (Wahrscheinlich mehr.)
Verwenden von PARTITION zum Erleichtern des Bereinigens --- Hochgeschwindigkeitsaufnahme --- Data Warehouse-Tipps --- Übersichtstabellen . Diese fassen viele der Techniken zusammen, die ich in verschiedenen DW-Projekten entwickelt habe. Wie Sie vielleicht schlussfolgern, ist jedes Projekt anders. Die "typische" Anzahl der Übersichtstabellen (meiner Erfahrung nach) beträgt 3-7. Das Ziel bei der Zusammenfassung sind 10 Faktenzeilen -> 1 Zusammenfassungszeile. (Das kann ein "Median" sein.) In seltenen Fällen habe ich eine Übersichtstabelle zusammengefasst. In einem anderen seltenen Fall habe ich eine Übersichtstabelle mit gutem Erfolg partitioniert. In der Regel sind Übersichtstabellen klein genug, um einen direkten Zugriff über eine Benutzeroberfläche zu ermöglichen.