|
Тема |
Re: бих добавил.... [re: karner] |
|
Автор |
salle (Един такъв) |
|
Публикувано | 08.11.02 14:35 |
|
|
Какво общо има пък клъстерен индекс?
Тая тая работа е много обширна част от теорията и практиката, но това което Торбалан спомена се свежда до правилото:
Има добри кандидати за индексирани и лоши.
Категорията зависи обаче от много фактори.
Примерът с полето Пол е учебникарски и е за да покаже, че в случай на 2 възможни стойности с равномерно разпределение 1:1 Индексът не носи особени предимства защото винаги ще се "вадят" около 50% от редовете в таблицата.
В зависимост от автора, сървъра, настройки и така нататък се споменава е граница от 10-30% от броя на редовете.
Ако дадена ЗАЯВКА ще извади по-малко от N-те % редове - има смисъл от индекс - ако са повече няма - претърсването на цялята таблица + печалбата от по-бързите INSERT,UPDATE,DELETE дават по-голяма ефективност БЕЗ индекс.
Разбира се нещата са много относителни и не случайно акцентът е върху ЗАЯВКАТА.
Простичък пример:
Таблица със 100 000 реда в която има 10 реда със N=0
Въпрос: N добър канидат за Индекс ли е?
Отговор - зависи от заявките.
SELECT ..... WHERE N = 0; Очевидно печели страхотно от използването на индек (ще бъдат проверени 10 от 100 000 т.е. 10000 пъти по-малко редове отколкото без индекс)
Ако обаче най-често използваната заявка е:
SELECT ... WHERE N > 0;
Тогава ще бъдат проверени 99 990 реда - почти никаква разлика от 100 000 -> т.е. индексът в случая с нищо не помага. И като се добавят другите фактори такъв индекс по-скоро пречи.
|
| |
|
|
|