![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Вопрос об индексах... [D6]
pathfinder © (2003-04-20 20:43:00)Есть таблица IB, состоящая к примеру из 3 полей. Отбор записей из этой таблицы производится по значениям всех 3-х полей.
Лучше сделать индекс по каждому полю отдельно или один индекс по всем трем полям?
заранее благодарен...
pathfinder (2003-04-22 02:54:00) [1]
> younghacker (21.04.03 10:48)
Большое Вам спасибо. Ваши советы оказались для меня очень полезными!
younghacker (2003-04-21 10:48:00) [2]Индекс можно построить по каждому полю, но можно
и по всем вместе, но в этом случае важно чтобы при перечислении полей в любых where выражениях они шли точно также как и в индексе
и в полном объеме. тоесть если построен индекс (a,b,c)
нужно использовать
where (a = ?)
and (b = ?)
and (c = ?)
Более того важно знать что в условии когда индексы строятся по полям в которых мало значений (например boolean) их очень рекомендуется строить в связке с каким-то еще полем. чтобы снизить нагрузку на сервер. Подумайте как IB сервер будет мучить винт и процессор, когда вы добавите одну запись в таблицу где есть миллионов 5 записей, и ему прийдется отлопатить 5 миллионов записей в надежде найти достойное место вашему булевому полю новой записи.
Ну и в заключении если вы занимаетесь IB очень рекомендую вам
посетить сайт http://www.ibase.ru/
а также конференции news://forums.demo.ru/epsylon.public.interbase
news://forum.cps.ru/cps.borland.interbase
Удачи!
Alexandr (2003-04-21 08:53:00) [3]если отбор всегда будет такой, то лучше составной.
А если потом прийдется отбор сделать по отдельному полу, тогда прийдется еще один индекс прикручивать.
Жук (2003-04-21 08:51:00) [4]Почитайте об организации работы индексов в IB, и тогда сами сможите определиться.
Sergey13 (2003-04-21 08:46:00) [5]Есть автомобиль с четырьмя колесами. Что лучше
1.Заменить масло.
2.Отрегулировать клапана.
3.Купить другую машину.
Вопрос слишком общий, ИМХО.