Розглянута таблиця була таблицею збору / агрегації.
Тоді це не тільки добре, це "правильно".
І це пахне Зведеною таблицею, оскільки починається з day
.
У вас є вторинні індекси? Майте на увазі, що якщо ви використовуєте InnoDB, решта стовпців PRIMARY KEY буде розміщена на кінці вторинного індексу. Знову ж таки, це не обов'язково проблема.
100М рядків - це багато для зведення. Здається, стіл занадто дрібнозернистий. Тобто, можливо, замість того, якщо (дата, a, b, c, d) у вас повинно бути 4 складання з ПК, наприклад (дата, a, b, c), (дата, b, c, d), (дата, c, d, a), (дата, d, a, b) (або деякі відповідні комбінації). Я роблю це, кожен може мати лише 10М рядків, тим самим роблячи звіти ще швидшими, маючи майже стільки ж гнучкості у звіті.
А може, перейти на (тиждень, a, b, c, d), що веде до 14M рядків. (Напевно, більше.)
Використання ЧАСТИНИ для полегшення обрізки --- Прийом у швидку їжу --- Поради щодо сховища даних --- Зведені таблиці . Вони узагальнюють багато методів, які я розробив у кількох проектах DW. Як можна зробити висновок, кожен проект відрізняється. "Типова" кількість зведених таблиць (на мій досвід) становить 3-7. Ціль у підведенні підсумків - 10 фактичних рядків -> 1 Зведений рядок. (Це може бути "медіаною".) У рідкісних випадках я підсумував Зведену таблицю. В іншому рідкісному випадку я РОЗДІЛУВАННЯ підсумкової таблиці; Зазвичай таблиці підсумків досить малі, тому вони досить швидкі для прямого доступу з інтерфейсу користувача.