Я вважаю, що це передчасна оптимізація, оскільки наша програма ще не випущена. Я запропонував стежити за повільними запитами, як тільки ми переходимо наживо, а потім додавати індекси відповідно.
Ви не можете ставитися до своїх кінцевих споживачів та виробничого середовища, як до забезпечення якості. Іншими словами, ви говорите, що ви зрозумієте це у виробництві. Я не думаю, що це правильний шлях, і я бачу, що цей підхід щодня жахливо помиляється .
Вам потрібно пам’ятати про одне, оскільки ви не можете намалювати це широкою пензликом.
Яке загальне навантаження ?
Це може здатися очевидним або нудним, але на практиці це важливо. Якщо у вас є 10 запитів, які складають 98% вашої роботи (досить поширені, вірите чи ні), моя рекомендація буде важким аналізом перед виробництвом . Маючи реалістичні та репрезентативні дані, переконайтеся, що ці 10 запитів є настільки ж хорошими, наскільки це можливо ( ідеально - це витрата цінного часу і майже недосяжна).
Для інших 200 запитів, які складають 2% завантаженості , це ті, які, швидше за все, не коштують ні зусиль, і складатимуть проблеми, пов'язані з вирішенням проблем у виробництві. Це теж реальність, і не страшно погана річ. Але це не означає ігнорувати індексацію кращих практик чи робити прогнозні припущення щодо пошуку даних.
Загальноприйнятною та доброю практикою є визначення продуктивності бази даних до початку виробництва. Насправді існує відносно поширена позиція для такого типу речей, що називається розробкою DBA .
Але ...
Деякі забирають це занадто далеко і божевільно додають індекси "про всяк випадок". Хтось рекомендує це пропущений індекс? Додайте його та ще чотири варіанти. Також погана ідея. Вам потрібно не тільки думати про пошук даних, а як щодо модифікації даних? Чим більше індексів у таблиці, загалом кажучи, тим більше накладних витрат, коли ви змінюєте дані.
Як і більшість речей, існує здоровий баланс.
Як весела маленька сторона ... Плюралізація "Індексу"
"Індекси" призначені для фінансових людей
"Індекси" - це для нас