Вниз
Скачать: CL | DM;

Как лучше строить индексы ?..   Найти похожие ветки 

 
Dimedrol ©   (2004-05-08 12:56) [0]

У меня есть 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);


 
Sergey_Masloff   (2004-05-08 14:00) [1]

Ну а сам-то ты как думаешь?
Вообще зависит от задачи если всегда выбираешь по первому или первому и второму или первому второму и третьему то сойдет вариант с одним индексом. Если нужно допустим поиск по fld2 и fld3 без Fld1 то...


 
Desdechado ©   (2004-05-08 15:08) [2]

если надо будет искать по fld2, то вариант с одним индексом не подойдет, т.к. это поле не в начале индексного ключа и индекс использоваться не будет
кстати, на заметку - для полей, которые имеют малое разнообразие значений (например, булева типа), индексы неэффективны


 
kaif ©   (2004-05-09 03:13) [3]

А какого типа эти поля, если не секрет?


 
Dimedrol ©   (2004-05-09 13:42) [4]

Поля в основном - INTEGER, хотя встречаются и VARCHAR-ы


 
Anatoly Podgoretsky ©   (2004-05-09 14:03) [5]

Dimedrol ©   (09.05.04 13:42) [4]
Учитывай органичение на размер индекса для текстовых полей в 84/254 символа
А какие делать индексы зависит от запросов.



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.142 c
6-1081949232
Yurko
2004-04-14 17:27
2004.05.30
ProgressBar для закачки файла с HTTP


6-1081272826
rewolt
2004-04-06 21:33
2004.05.30
socket.data


14-1084192118
Курдль
2004-05-10 16:28
2004.05.30
К алгоритмическим полиглотам - вопрос о переходе на C#.


14-1084200341
Gramila
2004-05-10 18:45
2004.05.30
Прерывания


14-1084515269
Rule
2004-05-14 10:14
2004.05.30
Направте на правильный путь решения проблеммы..




   Наверх