Я читал о рефакторинге большого медленного SQL-запроса вместо здесь , и текущий максимальный ответ от Митча Уитта, который хочет убедиться, что запрос использует индексы для основных выборок, и упоминает:
Первое, что я хотел бы сделать, это убедиться, что периодически выполняется задание обслуживания активного индекса. Если нет, восстановите все существующие индексы или, если это невозможно, хотя бы обновите статистику.
Я всего лишь любитель DBA, и я сделал несколько внештатных программ, которые в основном являются клиентскими приложениями Java для настольных компьютеров, а иногда и бэкэндом MySQL. Когда я настраиваю систему, я знаю, что нужно создать индекс по столбцам, к которым будет выполняться запрос, есть varchar CaseID и varchar CustName.
Однако я настроил эту систему несколько месяцев назад и оставил клиент, управляющий ею, и я считаю, что индексы должны расти по мере ввода данных, и я считаю, что все по-прежнему работает хорошо. Я обеспокоен тем, что индексы должны периодически перестраиваться, потому что сегодня я прочитал, что должна быть «активная работа по обслуживанию». Единственная работа по техническому обслуживанию, которую я поставил, была ночная резервная копия.
Я хотел спросить сообщество о регулярном обслуживании базы данных. Нужно ли перестраивать индексы? Могу ли я доверять, чтобы серверная часть MySQL продолжала работать до тех пор, пока с ней никто не связывался, а объем данных не превышал нескольких гигабайт?