@nikivanz

Как работает поиск по комбинированным индексам?

Здравствуйте!

Вопрос такой: Допустим, есть табличка test, в ней поля:
id, language_id, english_word, word, word_id

id, конечно, пусть будет PK.
Если я создаю 2 комбинированных индекса:
language_id, english_word
и
word, word_id

А потом ищу по табличке так:
WHERE language_id=...
AND english_word=...
AND word=...
AND word_id=...


Включаются-ли в работы два созданных ранее индекса? Т.е. даёт-ли это прирост?

Знаю, что лучше самому проверить! Просто пока нет времени и надеюсь, что у кого-то здесь уже есть в этом твёрдые знания.

Спасибо за помощь!
  • Вопрос задан
  • 83 просмотра
Пригласить эксперта
Ответы на вопрос 3
Melkij
@Melkij
PostgreSQL DBA
Возможность у планировщика такая есть. bitmap index scan может объединять проход по нескольким индексам. Воспользуется ли планировщик этим планом или предпочтёт что-то другое и, тем более, будет ли это дешевле - зависит от статистики распределения данных, настроек, возможностей железа.

Как решит планировщик в вашей системе - ответит explain. Сколько чего реально стоит в рантайме - ответит explain (analyze,buffers)

Не обратил внимание на второй тег, это про postgresql было.

mysql так же умеет, там называется Index Merge. Будет ли использоваться - опять же на усмотрение планировщика.
Ответ написан
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Будет использован только один индекс, полностью или частично.
Зависит от селективности индекса по данному условию.
Ответ написан
inoise
@inoise
Solution Architect, AWS Certified, Serverless
делаешь EXPLAIN ..... и он отвечает на все твои вопросы
Ответ написан
Ваш ответ на вопрос

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

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