Рассматриваемая таблица была сводной таблицей / таблицей агрегации.
Тогда это не только хорошо, это «правильно».
И он пахнет как Сводная таблица, так как он начинается с day
.
У вас есть какие-то вторичные индексы? Имейте в виду, что если вы используете InnoDB, остальные столбцы PRIMARY KEY будут добавлены в конец вторичного индекса. Опять же, это не обязательно проблема.
100M рядов это много для накопления. Похоже, стол слишком мелкий. То есть, возможно, вместо этого, если (date, a, b, c, d) у вас должно быть 4 свертки с PK, такими как (date, a, b, c), (date, b, c, d), (date, c, d, a), (дата, d, a, b) (или некоторые подходящие комбинации). Я сделал это, каждая из которых может быть только 10M строк, тем самым делая отчеты еще быстрее, и в то же время обладает почти такой же гибкостью в отчетах.
Или, может быть, переключиться на (неделя, а, б, в, г), в результате чего может быть только 14 миллионов строк. (Вероятно, больше.)
Использование PARTITION для облегчения сокращения --- Высокоскоростное употребление --- Советы по хранилищу данных --- Сводные таблицы . Они суммируют многие из методов, которые я разработал в нескольких проектах DW. Как вы можете сделать вывод, каждый проект отличается. «Типичное» количество сводных таблиц (по моему опыту) составляет 3-7. Целью суммирования является 10 строк фактов -> 1 строка итогов. (Это может быть «медиана».) В редких случаях я суммировал сводную таблицу. В другом редком случае я РАЗДЕЛИЛ сводную таблицу с хорошим эффектом; Обычно сводные таблицы достаточно малы, поэтому они достаточно быстры для прямого доступа из пользовательского интерфейса.