Driver86
@Driver86
Немодератор toster.ru

Индексируются ли столбцы «отдельно», или это надо указывать явно?

Добавляю уникальный индекс по двум столбцам.
ALTER TABLE `table` ADD UNIQUE (`col1`, `col2`)
Если будет выбор/сортировка/etc по одному из них, нужно ли добавлять отдельно индекс для одного столбца? Проще говоря, индексируются ли столбцы "отдельно", или это надо указывать явно?
  • Вопрос задан
  • 218 просмотров
Решения вопроса 1
@neol
Столбцы отдельно не индексируются, но запросы по условию с первым из указанных столбцов могут использовать составной индекс.

Несколько примеров:

SELECT `id` FROM `table` WHERE `col1` = 1;

Будет использовать индекс

SELECT `id` FROM `table` WHERE `col1` = 1 AND `col2` = 1;

Тоже будет использовать индекс

SELECT `id` FROM `table` WHERE `col2` = 1;

Индекс не будет использован.

SELECT `id` FROM `table` WHERE `col1` = 1 OR `col2` = 1;

А в этом запросе индекс хоть и будет использован, но только для col1. Для col2 - полный просмотр таблицы.

SELECT `id` FROM `table` WHERE `col1` = 1 ORDER BY `col2`;

Индекс будет использован для WHERE, но не будет для ORDER BY.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы