SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 25.01.2014 21:20:26

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

статья "Группировка в MySQL"

На сайте появилась новая статья Группировка в MySQL. Буду благодарен за замечания и предложения.


to rgbeast

каждое выполнение подзапроса требует определенных накладных расходов, которые можно увидеть путем профилирования

Из профайлинга мы можем увидеть, что подзапрос выполняется много раз, что логично так как он зависимый. Однако, отсюда не очевидна природа задержки. Имхо, формулировка про sql-обертку была лучше.

Неактивен

 

#2 25.01.2014 21:28:24

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3880

Re: статья "Группировка в MySQL"

Про SQL-обертку звучит лучше, но это не совсем верно. План исполнения подзапроса формируется один раз, а накладные расходы не из-за SQL, а из-за того, что требуется начать исполнение подзапроса, а после его завершения сохранить результат. Это отлично видно из профайлинга:
...
optimizing
statistics
preparing
executing
Sending data
executing
Sending data
executing
Sending data
executing
Sending data
executing
Sending data
executing
Sending data
executing
Sending data
executing
Sending data
...

В случае JOIN вызов исполнителя (executor) не производится, ровно как и передача данных.

Неактивен

 

#3 25.01.2014 22:38:50

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: статья "Группировка в MySQL"

Согласен, твоя формулировка точнее.


Просто, когда JOIN сканирует вторую таблицу, это похоже на подзапрос. Но JOIN мы вызвали единожды и дальше он бегает вложенными циклами по таблицам, т.е. работа идет на уровне внутреннего алгоритма. А в случае подзапроса хоть план выполнения и составляется единожды есть дополнительные расходы (инициализация кода, вызов методов, передача результата и т.д), связанные с тем, что подзапрос трактуется как отдельный sql-запрос. Эта ситуация у меня хорошо ассоциируется с фразой про SQL-обертку, которая зажирает время smile

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

P.S. Кстати, у яндекса классный логотип ко дню студента, прям ностальгией повеяло.
http://yandex.st/morda-logo/i/citylogos/25jan2014-logo-ru.png


Прикрепленные файлы:
Attachment Icon 25jan2014-logo-ru.png, Размер: 11,530 байт, Скачано: 298

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson