Вопросы по индексированию.

IF

else
Вопросы по индексированию.

Есть индексы по конкретным полям (по одному на индекс).
Будут ли они ускорять поиск, если он ведётся по двум-трём полям (по которым индекс есть) или дучше создать ещё один, дополнительный индекс по всем полям поиска?
 

Wicked

Новичок
AFAIK, ускорять они будут с той точки зрения, что поиск происходить по индексу, который по своей части условия дает совпадение на наименьшем кол-ве записей.

Лучше создать индексы, чтобы выборка по "двум-трем полям" всегда использовала leftmost prefix индекса.

7.4.5. How MySQL Uses Indexes
 

DiMA

php.spb.ru
Команда форума
Идекс по 2м полям содержит: отдельно индекс по первому полю, индекс по первому и второму полю. Типа два в одном при правильном запросе.
 

Alexandre

PHPПенсионер
DiMA, а если вести поиск по второму и третьему полю,
то индекс типа 1+2+3 уже не потянет.

думаю, все зависит от задачи.
 

DiMA

php.spb.ru
Команда форума
zerkms
лично я создаю индекс, чтобы его юзать, а не теоретически "мочь использовать"

Alexandre
я в курсе
 

zerkms

TDD infected
Команда форума
DiMA
я имел ввиду - что при создании составного индекса
отдельно индекс по первому полю, индекс по первому и второму полю
отдельно ничего не создаётся, однако отдельно может использоваться
 

DiMA

php.spb.ru
Команда форума
да, я это в 3-м сообщении сверху уже написал
 

IF

else
дело в том, что индексы по одному полю у меня используются. Вопрос собственно говоря в том, что есть ли смысл индексировать по двум-трём полям сразу ещё или нет. Даст это какой-то ощутимый эффект? Кол-во записей в базе ~5000.
 

Alexandre

PHPПенсионер
если много поисковых полей например шесть семь и может идти выбор по каждому в отдельности или в сочетании (как пример БД недвижимости) , то на каждое сочетание получится большое кол-во индексов ( n-1)! если мне не изменяет память в комбинаторике, база может разрастись.

по этому надо подходить к индексированию с наиболее вероятных сочетаний полей запросов запросов.

Пример БД кв., то наиболее вероятные сочетания
кол-во комнат - район
кол-во комнат- метро
кол-во комнат-цена
кол-во комнат- район-цена
кол-во комнат- метро-цена

метро-цена или район-цена маловероятны,
создаем индекс просто цена...

создание индекса район-метро - вообще бесмысленно
 
Сверху