Поисковый индекс
Поисковый индекс, это структура данных, которая помогает базе данных быстрее находить нужную информацию. Без индексов поиск по большим таблицам может занимать много времени.
В каждом проекте медленные запросы зависят от структуры данных и частоты использования. Например, на сайте с большим количеством товаров медленным может быть запрос на поиск по цене и категории. В таких случаях помогает составной индекс, он создается сразу по нескольким полям таблицы.
Как определить, какие индексы нужны
Для определения, поможет монитор производительности. Монитор производительности — это инструмент, который помогает находить медленные запросы SQL.
- Откройте административный раздел сайта
- Перейдите в
Настройки -> Настройки продукта -> Настройки модулей -> Монитор производительности
- Включите опцию
Записывать только медленные SQL-запросы
- Укажите время, после которого запрос считается медленным. По умолчанию это
0,1
секунды - Установите время работы монитора. Рекомендуем запускать его на одни сутки
- Нажмите
Сохранить
, запустится монитор производительности. Через сутки вы сможете проанализировать медленные запросы
Анализ результатов
После завершения работы монитора производительности:
- Откройте административный раздел сайта
- Перейдите в
Настройки -> Производительность -> Индексы -> Анализ индексов
- Нажмите
Выполнить анализ собранных SQL-запросов
В результатах обратите внимание:
- На запросы с наибольшим временем выполнения
- Запросы, которые выполняются чаще всего
Не для каждого запроса нужно создавать индекс, так как это может увеличить нагрузку на базу данных. Иногда проблема в коде компонента. Например, если компонент делает слишком много запросов к базе данных, их можно оптимизировать.
Создание индекса
Чтобы создать индекс для конкретного запроса:
- Перейдите в
Настройки -> Производительность -> Индексы -> Анализ индексов
- Выберите нужный запрос, откройте меню и нажмите
Детальный анализ
, откроется страница с детальным анализом запроса - Перейдите во вкладку
Создание индекса
и нажмитеСоздать индекс
Созданный индекс появится на странице Настройки -> Производительность -> Индексы -> Список индексов
. Проверьте его эффективность, выполнив повторный анализ запросов: