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

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

Клубове
Dir.bg
Взаимопомощ
Горещи теми
Компютри и Интернет
Контакти
Култура и изкуство
Мнения
Наука
Политика, Свят
Спорт
Техника
Градове
Религия и мистика
Фен клубове
Хоби, Развлечения
Общества
Я, архивите са живи
Клубове Дирене Регистрация Кой е тук Въпроси Списък Купувам / Продавам 19:21 22.05.24 
Клубове/ Компютри и Интернет / Бази данни Пълен преглед*
Информация за клуба
Тема Re: случаен vs произволен [re: Dakota]
Автор salle (един такъв)
Публикувано17.10.03 09:09  



Ама виж сега...

Във всяка СУБД живее едно животно наречено Оптимизатор. Дето се опитва да измисли най-добрия начин да ти изпълни заявките.


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

Пращаш

SELECT name FROM tbl LIMIT 5;

т.е. дай ми 5 имена от таз таблица ама понеже няма ORDER BY значи Кои Да Е 5 имена. Не случайни а по усмотрение на сървъра.

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

SELECT name FROM tbl ORDER BY status LIMIT 10;

И тези 10 имена все още седят в някой буфер в паметта.
И сървъра си казва - Я да взема аз 5 имена от тоз буфер и да не ровя таблицата по диска. От паметта винаги е по-бързо, пък той Dakota не се вълнува от подредбата щом не е казал ORDER BY

И ти изведнъж получаваш 5 имена съвсем произволно подредени по статус.

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

Обаче сле 2 часа сървъра ти връща други 5 имена защото примерно въпросните буфери вече с пълни с нещо друго и той дръпва първите 5 имена от таблицата на диска които обаче са подредени по нещо друго.

Ето това имам предвид като казвам, че реда не е случаен. Т.е. не е гарантирано случаен.

Може 1000 пъти да получиш точно една и съща подредба или всеки път да е различна.

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

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



Цялата тема
ТемаАвторПубликувано
* MySQL -> ORDER BY Dakota   15.10.03 17:33
. * Мразя join bira_more   15.10.03 18:49
. * Re: MySQL -> ORDER BY ro6avia   15.10.03 19:24
. * Re: MySQL -> ORDER BY salle   15.10.03 22:11
. * Re: MySQL -> ORDER BY Dakota   16.10.03 12:01
. * Re: MySQL -> ORDER BY voyager   16.10.03 14:11
. * Re: MySQL -> ORDER BY Dakota   16.10.03 16:23
. * Re: АБВ на Релационните БД ... пак salle   16.10.03 14:36
. * Re: АБВ на Релационните БД ... пак Dakota   16.10.03 16:13
. * Re: АБВ на Релационните БД ... пак salle   16.10.03 16:56
. * случаен vs произволен Dakota   16.10.03 17:05
. * Re: случаен vs произволен salle   17.10.03 09:09
. * Re: случаен vs произволен Dakota   17.10.03 10:39
. * Re: QCache salle   17.10.03 11:33
. * Re: QCache Dakota   17.10.03 11:50
. * Re: Между другото salle   17.10.03 11:32
. * защо? Dakota   17.10.03 11:48
. * Води до повече грешки. Читaтeл   21.10.03 18:05
. * Re: Води до повече грешки. Dakota   22.10.03 12:43
Клуб :  


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

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