La tabla en cuestión era una tabla de acumulación / agregación.
Entonces no solo está bien, es "correcto".
Y huele a una tabla Resumen, ya que comienza con day
.
¿Tienes algunos índices secundarios? Tenga en cuenta que si está utilizando InnoDB, el resto de las columnas PRIMARY KEY se agregarán al final del índice secundario. Nuevamente, esto no es necesariamente un problema.
100 millones de filas es mucho para un paquete acumulativo. Parece que la mesa es demasiado fina. Es decir, tal vez si (fecha, a, b, c, d) debería tener 4 acumulaciones con PK como (fecha, a, b, c), (fecha, b, c, d), (fecha, c, d, a), (fecha, d, a, b) (o algunas combinaciones adecuadas). Al hacer eso, cada uno puede tener solo 10 millones de filas, lo que hace que los informes sean aún más rápidos, al tiempo que tiene casi tanta flexibilidad en el informe.
O tal vez cambie a (semana, a, b, c, d), lo que lleva a tal vez solo 14 millones de filas. (Probablemente más)
Uso de PARTITION para facilitar la poda --- Ingestión de alta velocidad --- Consejos de Data Warehouse --- Tablas de resumen . Estos resumen muchas de las técnicas que he desarrollado en varios proyectos de DW. Como se puede deducir, cada proyecto es diferente. El número 'típico' de tablas de resumen (en mi experiencia) es 3-7. El objetivo en el resumen es 10 filas de hechos -> 1 fila de resumen. (Eso puede ser una 'mediana'). En un caso raro, resumí una tabla de resumen. En otro caso raro, particioné una tabla de resumen con buenos resultados; por lo general, las tablas de resumen son lo suficientemente pequeñas como para que sean lo suficientemente rápidas para el acceso directo desde una interfaz de usuario.