La tabella in questione era una tabella di rollup / aggregazione.
Quindi non va solo bene, è "giusto".
E puzza come una tabella di riepilogo, poiché inizia con day
.
Hai degli indici secondari? Tieni presente che se stai utilizzando InnoDB, il resto delle colonne PRIMARY KEY verrà aggiunto alla fine dell'indice secondario. Ancora una volta, questo non è necessariamente un problema.
100 milioni di righe sono molte per un rollup. Sembra che il tavolo sia troppo fine. Cioè, forse invece se (data, a, b, c, d) dovresti avere 4 rollup con PK come (data, a, b, c), (data, b, c, d), (data, c, d, a), (data, d, a, b) (o alcune combinazioni adatte). Lo sto facendo, ognuno potrebbe essere solo 10 M righe, quindi rendere i report ancora più veloci, pur avendo quasi la stessa flessibilità nel report.
O forse passare a (settimana, a, b, c, d), portando a forse solo 14 milioni di righe. (Probabilmente di più.)
Utilizzo di PARTITION per facilitare la potatura --- Ingestione ad alta velocità --- Suggerimenti per il data warehouse --- Tabelle di riepilogo . Questi riassumono molte delle tecniche che ho sviluppato in diversi progetti DW. Come puoi dedurre, ogni progetto è diverso. Il numero "tipico" di tabelle riassuntive (nella mia esperienza) è 3-7. L'obiettivo nel riepilogo è di 10 righe dei fatti -> 1 riga di riepilogo. (Potrebbe essere una "mediana".) In un raro caso, ho riassunto una tabella riassuntiva. In un altro raro caso, ho partizionato una tabella di riepilogo con buoni risultati; di solito le tabelle di riepilogo sono abbastanza piccole, quindi sono abbastanza veloci per l'accesso diretto da un'interfaccia utente.