Что такое составной индекс?
Составной индекс – это индекс, построенный по нескольким колонкам. Такие индексы имеет смысл использовать, когда в одном запросе фигурируют более одной колонки. Mysql поддерживает составные индексы для любых типов таблиц.
1. Фильтрация по нескольким колонкам
SELECT * FROM table WHERE date = '2020-10-10' AND name = 'Den'
Наиболее эффективный индекс будет таким:
CREATE INDEX date_name ON table(date, name)
2. Фильтрация и сортировка
SELECT * FROM table WHERE name = 'Den' ORDER BY date
Наиболее эффективный индекс будет таким:
CREATE INDEX date_name ON table(name, date)
# Первой должна идти колонка, по которой фильтруем
Количество колонок в индексе может быть любое:
SELECT * FROM table WHERE date = '2020-10-10' AND type = 2 AND name = 'Den' ORDER BY amount DESC
CREATE INDEX date_name ON table(date, type, name, amount)
Сообщить об опечатке
Текст, который будет отправлен нашим редакторам: