|
Тема |
Re: Майко мила .... [re: salle] |
|
Автор | нaн (Нерегистриран) | |
Публикувано | 19.10.06 21:14 |
|
|
>> Това е "лош" индекс защото в него има "само" 101 уникални стойности при "цели" 393216 реда.
Хмм... ти ме хвърли в размисъл..
по какъв точно начин този индекс е "лош"?
Ако приемем, че тези 393 216 реда са например за таблица Orders, а 101 на брой са клиентите за тези ордери, какво лошо има в индекса ако искаш да изкараш например всички ордери на клиент Х (който има да речем 5 000 ордера)?
За сравнение, ако имаш уникален индекс по поле "Номер на ордер", тогава ще имаш максимална кардиналност, но това ще ти помогне ли ако искаш да покажеш ордерите с номера между 70 000 и 75 000 (нека са поредни, т.е. пак 5 000 на брой). Предполагам, че скоростта за изпълнение в този случай би била горе-долу същата?
Уф, стана ми любопитно какво точно е вътрешното представяне на индексите в MySql (пък и въобще, в повечето бази как е), все трябва да е обяснено някъде, ама нещо сега точно нямам много време за това.
Може би ще да е дърво по кардиналните стойности на индексираните полета, в листата на което би следвало да са изброени "указателите" към съответните записи. Тези "указатели", ако индексът не е уникален, би следвало пак да са в някаква дървовидна структура, щото иначе не ми се мисли какво обхождане би станало при update-операциите, ако бяха свързани само в свързан списък например и този списък има много елементи:). Абе както и да е, отплеснах се нещо...
|
| |
|
|
|