@khodos_dmitry

Почему в mysql-запросе сильно увеличивается время выполнения «Sending Data» без ORDER BY?

Выполняю запрос c ORDER BY :
SELECT `cpl_banks`.`name`, `cpl_banks`.`genitive_name`, `cpl_banks`.`slug`, `bank_id`, `mfo_id`, `cpl_offices`.`id`, `cpl_offices`.`lng`, `cpl_offices`.`lat`, `cpl_offices`.`time_work`, `cpl_offices`.`type`, `cpl_offices`.`short_address`, `cpl_offices`.`address`, `cpl_offices`.`phones`, `Mon_from`, `Mon_to`, `Tue_from`, `Tue_to`, `Wed_from`, `Wed_to`, `Thu_from`, `Thu_to`, `Fri_from`, `Fri_to`, `Sat_from`, `Sat_to`, `Sun_from`, `Sun_to` FROM `cpl_offices` JOIN `cpl_banks` ON `cpl_banks`.`id` = `cpl_offices`.`bank_id` WHERE `cpl_banks`.`id` = '10' AND `lat` >= 59.878788 AND `lat` <= 59.904788 AND `lng` >= 30.304873 AND `lng` <= 30.330873 AND (`cpl_offices`.`del` IS NULL OR `cpl_offices`.`del` = 0) AND `cpl_offices`.`work` = 1 ORDER BY `short_address`

Результаты профилирования:
5d0b307f97940125927119.png

Выполняю запрос без ORDER BY :
SELECT `cpl_banks`.`name`, `cpl_banks`.`genitive_name`, `cpl_banks`.`slug`, `bank_id`, `mfo_id`, `cpl_offices`.`id`, `cpl_offices`.`lng`, `cpl_offices`.`lat`, `cpl_offices`.`time_work`, `cpl_offices`.`type`, `cpl_offices`.`short_address`, `cpl_offices`.`address`, `cpl_offices`.`phones`, `Mon_from`, `Mon_to`, `Tue_from`, `Tue_to`, `Wed_from`, `Wed_to`, `Thu_from`, `Thu_to`, `Fri_from`, `Fri_to`, `Sat_from`, `Sat_to`, `Sun_from`, `Sun_to` FROM `cpl_offices` JOIN `cpl_banks` ON `cpl_banks`.`id` = `cpl_offices`.`bank_id` WHERE `cpl_banks`.`id` = '10' AND `lat` >= 59.878788 AND `lat` <= 59.904788 AND `lng` >= 30.304873 AND `lng` <= 30.330873 AND (`cpl_offices`.`del` IS NULL OR `cpl_offices`.`del` = 0) AND `cpl_offices`.`work` = 1

Результаты профилирования:
5d0b3020ccc4f786282392.png

Я думал, что ORDER BY много времени занимает, но без ORDER BY время Sending Data становится гораздо больше. А в результате время выполнения обоих запросов почти одинаковое.
  • Вопрос задан
  • 117 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы