#mysql #indexing
#mysql #индексирование
Вопрос:
У меня есть таблица ‘orders’ с полями
- ID
- user_id
- project_id
- и т.д..
где выбираются два типа
-
выберите * формировать заказы, где user_id = val1
и
-
выберите * формировать заказы, где user_id = val1 и project_id = val2
Если я создаю индекс с несколькими столбцами для второго типа выборок по user_id project_id, нужно ли мне создавать индекс одного столбца по user_id для резервного копирования первого типа выборок?
Ответ №1:
Вам нужен только один индекс для таблицы . . . orders(user_id, project_id)
. Это можно использовать для обоих запросов, потому что самые левые ключи ( user_id
) имеют условие равенства в первом запросе. Однако ключи должны располагаться в таком порядке.
MySQL имеет довольно хорошую документацию по многоколоночным индексам.