|
Тема |
Re: Още чакам, но за друго... [re: bass] |
|
Автор |
salle (член) |
|
Публикувано | 29.04.03 15:29 |
|
|
хмм....
Значи не си мниги прав за компилаторите защото един добре опитимизилащ компилатор може да се усети, че примерно 3-тото условие в един AND е винаги вярно и да промени реда на изчисление.
При SQL сървърите пък иде реч за Оптимизатор а на него това му е работата - да измисли най-добрия план.
В твоя случая ако имаше два индекса по FolderId и Edited оптимизатора на базата на статистиката за индексите ще предпочете единия или другия - този който ограничава повече броя на редовете.
Т.е. ако оптимизатора очаква, че
FolderId = <> ще върне 20000 реда
а
Edited = <> само 150 то тогава тава е по-добрият кандидат за индекс и съответно и това условие в AND е по-добре да се приложи първо.
Следващият момент е, че индексите при MyISAM преди 4.1 са само B-tree поради което те работят най-добре по Префикс.
И в горния пример индекс (Edited, FolderId) ще бъде за предпочитане пред (FolderId, Edited) а ако разликата е толкова голяма моеж да се окаже и, че FolderId изобщо нама смисъл да ес индексира ....
Абе то това си едно тресавище от теория, практика, проби и грешки ...
|
| |
|
|
|