Нужны ли нам несколько индексов для данного столбца в MySQL?

MySQL (Мария)

Я создал индекс для двух столбцов.

entpcd -- Entity Type Code
enid -- Entity ID

Будет ли MySQL автоматически использовать этот индекс для этого запроса?

SELECT * FROM table_name WHERE entpcd='PN'

.. или мне нужно определить отдельный индекс с одним полем для entpcd, чтобы SELECT работал хорошо?

Он будет использовать индекс entpcd (первый столбец), но все равно должен выполнять поиск по ключу, чтобы получить остальные столбцы (SELECT *)

Lukasz Szozda 10.04.2019 23:57

Ссылка: mysqltutorial.org/mysql-индекс/mysql-составной-индекс "Оптимизатор запросов использует составные индексы для запросов, проверяющих все столбцы в индексе, или запросов, проверяющих первые столбцы, первые два столбца и т. д.". Поскольку entpcd является первым столбцом в индексе, дальнейший индекс не требуется.

Martin 10.04.2019 23:58
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
В предыдущем посте мы создали функциональность вставки и чтения для нашей динамической СУБД. В этом посте мы собираемся реализовать функции обновления...
Документирование API с помощью Swagger на Springboot
Документирование API с помощью Swagger на Springboot
В предыдущей статье мы уже узнали, как создать Rest API с помощью Springboot и MySql .
Роли и разрешения пользователей без пакета Laravel 9
Роли и разрешения пользователей без пакета Laravel 9
Этот пост изначально был опубликован на techsolutionstuff.com .
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
В предыдущей статье мы завершили установку базы данных, для тех, кто не знает.
0
2
18
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Если MySQL решит использовать индекс для этого запроса, то созданный вами индекс будет считаться тем, который он может использовать.

Я ужасно расплывчат, потому что оптимизатор будет делать то, что делает оптимизатор. Но если у вас достаточно строк в таблице и это единственный доступный индекс, он сможет использовать этот индекс.

Другими словами: оптимизатору требуется только entpcd для запроса это; среди всех INDEXes он выберет тот Начало с entpcd.

Rick James 23.04.2019 00:19

Другие вопросы по теме