@egoranisimov

Mysql умеет сам делать merge index, но быстрее ли это?

ALTER TABLE `some_db`.`some_table` ADD INDEX `some_index` (`field1` , `field2`, `field3`, `field4`)
или
ALTER TABLE `some_db`.`some_table` ADD INDEX (`field1`)
ALTER TABLE `some_db`.`some_table` ADD INDEX (`field2`)
ALTER TABLE `some_db`.`some_table` ADD INDEX (`field3`)
ALTER TABLE `some_db`.`some_table` ADD INDEX (`field4`)

Что должно быть быстрее? Тесты говорят, что выигрывает первый вариант (запрос был с указанием, что использовать надо именно этот общий индекс). Хотелось бы узнать, как поступать в таких случаях.
  • Вопрос задан
  • 152 просмотра
Пригласить эксперта
Ответы на вопрос 2
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
Что быстрее, сканирование одного индекса или манипуляции с четырьмя индексами с целью получить пересечение/объеденение (в зависимости от логики запроса) результатов сканирования?
Ответ написан
opium
@opium
Просто люблю качественно работать
Мускул не умеет нормально использовать несколько индексов, собственно для этого и нужны составные индексы.
Легко проверить это с помощью explain
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы