Прочитавши питання та відповіді на цьому веб-сайті про індекси, мені прийшло в голову питання.
Що робити, якщо використовується таблиця часових розмірів, нижчий рівень деталізації якої є добовим. Куди слід поставити індекси?
Ренді Мелдер у запитанні: Що означає "індекс" на RDBMS? сказав:
Подумайте про індекс як "зміст" ... це впорядкований список покажчиків на позиції у файлі, так само зрушення
У випадку часового виміру більшість досліджень даних може бути проведено або для конкретного дня, конкретного тижня, конкретного місяця або конкретного кварталу, якщо графік зберігає весь день протягом унікального року .
Моє запитання: чи варто ставити індекси для всіх цих полів?
День, мабуть, унікальний, тому для цього я чудово розумію використання індексів. Але тиждень ідентифікатор матиме 7 випадків , місяць - 30/31 випадків , для чверті - більше 120 випадків .
- Чи варто все-таки ставити індекси для цих полів?
- Чи все-таки це стане в нагоді?
Я прошу вас, тому що в тому ж питанні Девід Спіллет сказав:
Додавання занадто багато індексів може бути поганою оптимізацією звичайно, оскільки додатковий простір, який використовується для зберігання індексів (і завантаження IO для їх підтримки, якщо ваша БД бачить багато операцій запису), може бути гіршою проблемою, ніж трохи менш оптимальні запити читання. , тому не робіть цього.
То які найкращі міркування для випадку часового виміру?