Составные ключи

djsv

Guest
Составные ключи

В таблице имеется составной первичный ключ.
Вопрос: нужно ли индексировать его составляющие, если по ним предполагается поиск и сортировка?
Самостоятельная попытка найти ответ привела к тому, что если в таблице имеется составной ключ (one, two, three), то ключи (one, two) и (one) задавать нет необходимости в связи с особенностями построения ключей B-TREE.
Т.е., если имеется первичный ключ (one, two), для частого поиска по two нужно завести дополнительно только индекс (two)? Почему же тогда DBDesigner, которым я с успехом пользуюсь для проектирования БД MySQL, для всех внешних ключей, входящих в первичный ключ, автоматически создаёт индексы? Не пустая ли это трата места и ресурсов?
 

svetasmirnova

маленький монстрик
Т.е., если имеется первичный ключ (one, two), для частого поиска по two нужно завести дополнительно только индекс (two)?
совершенно верно
DBDesigner - это программа, которая не может знать, по каким ключам ты будешь чаще всего делать поиск. Кстати, моя копия этой программы никаких дополнительных индексов не создаёт. Может настройки у тебя такие?
 
Сверху