MySQL составные Indedes я должен использовать их - PullRequest
0 голосов
/ 15 февраля 2010

Я получил вопрос об индексных стратегиях для mysql - в основном, когда использовать составной индекс

У меня довольно распространенный сценарий реляционных БД, вот моя таблица:

Maintable - table consisting of "products" including brandid, merchantid 

Итак, я создаю таблицу для хранения брендов и продавцов

Brandtable - brandname, brandid
Merchanttable - merchantname, merchantid

Когда я запрашиваю Maintable, я иногда запрашиваю brandid, иногда - merchantid, а иногда и то, и другое. Что лучше всего использовать в этом сценарии: отдельный индекс для каждого столбца или составной индекс, состоящий из обоих?

Также, если бы я хотел включить название бренда и название продавца в полнотекстовый поиск, как бы я достиг этого?

Приветствия:)

1 Ответ

2 голосов
/ 15 февраля 2010

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

Например, если у вас составной индекс (brandid,merchantid), этот индекс будет учитываться, если вы запросите по brandid или brandid и merchantid. Нет, если вы запрашиваете только merchantid

...