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

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

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

Страници по тази тема: 1 | 2 | >> (покажи всички)
Тема Индексинови  
Авторlele (Нерегистриран)
Публикувано01.11.02 09:48



Здр:-)
Чудех се има ли някакви по-специфични правила или препоръки когато в една таблица се задава кои колони трябва да са key или index. Защото е много лесно да направиш всичко което имаш индекс, но дали това е правилно?



Тема Re: Индексинови [re: lele]  
Автор voyager (бастун)
Публикувано01.11.02 10:04



Хм, отдавна не бях поствал тука, най-после нещо достатъчно просто, за да се включа . Начи сега, хич не е най-лесно да се наблъскат индекси навсякъде, защото:
1. При всяка операция ти се добавя, чете или ъпдейтва освен данните и индекса, свързан с тях. Това губи време.
2. Индексите заемат място. Особено в по-малки таблици понякога заемат относително много място. В моя форум доскоро индексния файл беше по-голям от файла с данните.
Та затва индекс се слага по полетата, по които се очаква да се търси. По-задълбочено обяснение на последното понятие, вервам, ще ти дадат другите от клуба .

It`s more fun to compute



Тема бих добавил....нови [re: voyager]  
Автор Topбaлaн (любопитко)
Публикувано01.11.02 10:38



няма смисъл да се индексират полета от типа "пол" да кажем, където има две стойности...и дори и три да са пак няма смисъл....

няма смисъл, да се индексира поле от тип текст, ако ще се търсят части от полето...демек ако ще търсиш ключови думи и те са подредени в едно поле и разделени със запетайки да кажем...индекса с нищо няма да ти облекчи живота...



Тема Re: Индексинови [re: voyager]  
Авторlele (Нерегистриран)
Публикувано01.11.02 11:11



мда, имам пропуск. Нямах предвид индекси абсолютно навсякъде, а само там където ще се търси. Явно е нужно, и отговорът на въпроса ми е: да, там където ще се търси слагай индекси, така ли?:-))



Тема Re: Индексинови [re: lele]  
Автор Topбaлaн (любопитко)
Публикувано01.11.02 11:53



ако ще търсиш в поле в което има малко на брой стойности няма смисъл да индексираш
ако ще търсиш части от полето също няма смисъл
сигурно и други случай ще има
освен това
ако повече ще тъпчеш и триеш в тази таблица, отколкото ще търсиш
хептен няма смисъл да индексираш....
въобще
баланс
зависи колко ти е натоварена таблицата и базата данни и т.н.

аз имам як сървър, много място и малко натоварване - никакво значение няма колко съм индексирал и къде.....



Тема Re: Индексинови [re: lele]  
Автор ..:: StanProg ::.. (Developer)
Публикувано02.11.02 13:26



Като за начало индексирай само полетата които са в WHERE клаузата и то ако за цифрови.
После можеш да си вземеш книгата на Пол ДюБоа "MySQL" и да прочетеш от там "Оптимизация на заявките". За индексите пише и в официалната документация. Има едно "How mysql optimizes....." - много полезна информация можеш да получиш от там.
Виж другите какво са писали по-въпроса. Мога да допълня, че "не е хубваво" да индексираш стрингове които са дълги...

Можеш и опитно(по емпиричен път - както казваше един доцент) да видиш как се променя производителността в зависимост от идексирането на някое поле.

__________________________________
Пътят към ада е осеян с добри намерения


Тема Re: Защо емпирично ...нови [re: ..:: StanProg ::..]  
Автор salle (Един такъв)
Публикувано02.11.02 22:26



...като си има много добро другарче.

В MySQL това е EXPLAIN

EXPLAIN SELECT .... и разказва подробно дали и какви индекси ще се използват.



Тема Re: Индекси [re: lele]  
Автор salle (Един такъв)
Публикувано02.11.02 22:38



Има мнооооого писания по въпроса кое има смисъл да се индексира и кое не и кога.

Всичко обаче се свежда до това, че оптимизираш конкретна заявка. И въпросът, който трябва да си задаваш - ТАЗИ заявка може ли да използва Индекс и какъв?

Гадно примерче:

1. SELECT .... WHERE col_a + 1 > 2;

2. SELECT ... WHERE col_a > 2 - 1;

Виждаш ли разликата?

...
2. може да използва индекс пък 1. НЕ може.

Тъй, че мисли. Много.

Наздраве



Тема Re: Индексинови [re: salle]  
Автор Draco (Огън и жупел)
Публикувано03.11.02 21:48



Ами... В Oracle има нещо, наречено function-based index, чрез което и заявка 1 може да ползва индекс.
Като цяло не зная как различните RDBMS организират и използват индексите, но съм съгласен с теб, че индекси се правят за оптимизиране на конкретна заявка - най-добре е да се прегледат най-често използваните заявки и да се направят походящите за тях индекси...

Nihil tam munitum quod non expugnari pecuna possit


Тема Re: Индексинови [re: ..:: StanProg ::..]  
Авторbahur (Нерегистриран)
Публикувано04.11.02 12:18



за дългите стрингове си има решение - индексираш само първите n символа от стринга




Страници по тази тема: 1 | 2 | >> (покажи всички)
*Кратък преглед
Клуб :  


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

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