Клубове Дир.бг
powered by diri.bg
търси в Клубове diri.bg Разширено търсене

Вход
Име
Парола

Клубове
Dir.bg
Взаимопомощ
Горещи теми
Компютри и Интернет
Контакти
Култура и изкуство
Мнения
Наука
Политика, Свят
Спорт
Техника
Градове
Религия и мистика
Фен клубове
Хоби, Развлечения
Общества
Я, архивите са живи
Клубове Дирене Регистрация Кой е тук Въпроси Списък Купувам / Продавам 10:50 28.06.24 
Компютри и Интернет
   >> Бази данни
*Кратък преглед

Тема Въпрос за търсененови  
Авторgrem (Нерегистриран)
Публикувано20.01.04 16:55



Здравейте, имам таблица в която 3 от колоните заедно образуват тарифен номер, т.е.


хххх xx хххххх
col1 col2 col3

Не мога да ги направя PRI, защото номера може да се повтаря.

Въпросът ми е, как ще е по-добре да ги индексирам - всяка колона поотделно, или трите да образуват един index ?
И също - като числа ли да направя колоните или като char ?

Трябва да се има предвид, че заявката за търсене може да е:

WHERE col1 = 'хххх' AND col2 = 'хх' AND col3 = 'хххххх',

но също така и

WHERE col1 = 'хххх' AND col2 = 'хх'

или пък само

WHERE col1 = 'хххх'



Тема Re: Въпрос за търсененови [re: grem]  
Автор fiffy ()
Публикувано20.01.04 18:30



Всичко зависи от начина по който използваш таблицата - много често ли обновяваш (добавяш) информация, колко често търсиш информация и т.н...

Като цяло ако имаш отделни индекси на трите колони - обновяването (добавянето) на информация ще е по-бавно, но търсене ще ти бъде по-бързо...

Трябва да прецения кога ти трябва повече скорост... Ако търсенето на информация е критично и трябва да се оптимизира, значи може би можеш да си позволиш да губиш малко екстра време при обновяване...

Накратко, отговора май е: зависи :))))

Епа, това е моето хоби...



Тема Re: Въпрос за търсененови [re: grem]  
Автор phpGuruАдминистратор (минаващ)
Публикувано20.01.04 18:38



ако ще имаш точно само такива заявки, а не и например
WHERE col2 = 'хххх' AND col3 = 'хх'

тогава за сигурно почти всички сървери един индекс от вида

CREATE INDEX table_full ON table_name ( col1, col2, col3 );

ще е най-добре

като реда на колоните естествено има значение, но синтаксиса, който съм написал може да се различава за различните сървери

три отделни индекса помагат само ако има търсене по трите колони по отделно



Тема с други думинови [re: phpGuru]  
Авторбaй Любo (Нерегистриран)
Публикувано21.01.04 06:57



С други думи, ако водещата колона на индекса не с зададена в уеър клаузата за заявката, индекса няма да се използва.

С три отделни индекса, се гарантира (гарантира май е прекалено силна дума в тоя случай) че и заявки по коя да е колона ще използват един от индексите.

Всеки допълнителен индекс разбира се забавя инсъртите, но до 3-4 индекса няма да се почувства -- поне не в сериозните субд от типа на събасе, орацле, мс сял сержер, дб2.



Тема Re: Въпрос за търсененови [re: phpGuru]  
Авторgrem (Нерегистриран)
Публикувано21.01.04 10:12



Ами няма да има такива заявки.
Ще са само трите случая които описах по-горе. Явно варианта с един index е по-добър.
благодаря.



Тема Re: Въпрос за търсененови [re: grem]  
Автор ro6avia (ламерясал)
Публикувано21.01.04 12:39



A защо не си сложиш и четирите индекса ?
1, 2, 3, 1+2+3

Е тук нищо няма:



Тема Re: Въпрос за търсене [re: grem]  
Автор Hищo (пълно)
Публикувано21.01.04 16:15



С каква БД? Ако си с Oracle, какъв е оптимайзера - RBO или CBО?



Тема Re: Въпрос за търсененови [re: ro6avia]  
Автор fiffy ()
Публикувано21.01.04 18:39



защото ако заявките му са наистина само от трите вида които той споменава, три от индексите няма никога да се използват (въпреки 4е 1 може би ще се използва, според зависи) и ще са напълно излишни...

Епа, това е моето хоби...




*Кратък преглед
Клуб :  


Clubs.dir.bg е форум за дискусии. Dir.bg не носи отговорност за съдържанието и достоверността на публикуваните в дискусиите материали.

Никаква част от съдържанието на тази страница не може да бъде репродуцирана, записвана или предавана под каквато и да е форма или по какъвто и да е повод без писменото съгласие на Dir.bg
За Забележки, коментари и предложения ползвайте формата за Обратна връзка | Мобилна версия | Потребителско споразумение
© 2006-2024 Dir.bg Всички права запазени.