Как правильно поставить индексы в MySQL?
Чтобы правильно выбрать индексы в MySQL, необходимо провести анализ:
Нужно ли вообще ставить индексы?
Если slow log и анализ не показывают, что существуют проблемы с производительностью, тогда и индексы ставить незачем.
Ставить индексы нужно только на медленные запросы
Если будете ставить просто так – рискуете снизить производительность MySQL.
Самый простой метод – это выбрать один из медленных запросов и поставить индекс на колонку, которая используется в WHERE:
SELECT * FROM users WHERE email = '[email protected]'
В этом случае, необходимо просто добавить индекс на колонку email:
CREATE INDEX email ON users (email)
Если в запросе более одной колонки
Тогда необходимо ставить индексы на колонки в порядке их появления в WHERE:
SELECT * FROM users WHERE email = '[email protected]' AND name = 'Den'
В этом случае, необходимо просто добавить индекс на колонки email и name:
CREATE INDEX email_name ON users (email, name)
Более сложные случаи
Выше представлены очень примитивные подходы к установке индексов, которые не учитывают большого количества ньюансов. Читайте, как анализировать и ставить индексы в MySQL учитывая особенности запросов и движка.
Сообщить об опечатке
Текст, который будет отправлен нашим редакторам: