![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как лучше строить индексы ?.. [D6, IB6.x, Firebird]
Dimedrol © (2004-05-08 12:56:00)У меня есть Firebird табличка, со множеством полей, по нескольким из которых я хочу построить индексы.
Вопрос, коллеги, в следующем - в каком случае индексы будут быстрее работать ?
Если я построю их отдельно по каждому полю,
CREATE INDEX MY_IDX1 ON MY_TABLE (FIELD1);
CREATE INDEX MY_IDX2 ON MY_TABLE (FIELD2);
CREATE INDEX MY_IDX3 ON MY_TABLE (FIELD3);
или объединю вместе ?
CREATE INDEX MY_IDX0 ON MY_TABLE (FIELD1,FIELD2,FIELD3);
Anatoly Podgoretsky (2004-05-09 14:03:00) [1]Dimedrol © (09.05.04 13:42) [4]
Учитывай органичение на размер индекса для текстовых полей в 84/254 символа
А какие делать индексы зависит от запросов.
Dimedrol (2004-05-09 13:42:00) [2]Поля в основном - INTEGER, хотя встречаются и VARCHAR-ы
kaif (2004-05-09 03:13:00) [3]А какого типа эти поля, если не секрет?
Desdechado (2004-05-08 15:08:00) [4]если надо будет искать по fld2, то вариант с одним индексом не подойдет, т.к. это поле не в начале индексного ключа и индекс использоваться не будет
кстати, на заметку - для полей, которые имеют малое разнообразие значений (например, булева типа), индексы неэффективны
Sergey_Masloff (2004-05-08 14:00:00) [5]Ну а сам-то ты как думаешь?
Вообще зависит от задачи если всегда выбираешь по первому или первому и второму или первому второму и третьему то сойдет вариант с одним индексом. Если нужно допустим поиск по fld2 и fld3 без Fld1 то...