Задавайте вопросы, мы ответим
Вы не зашли.
Страниц: 1
Я тут решил проверить, одинаково ли быстро выполняются запросы вида
Неактивен
Очень даже влияют (см. EXPLAIN для обоих запросов). Во втором случае имеет место подзапрос. То есть выполняется запрос в скобках, а затем внешний запрос. Оптимизация подзапросов в настоящее время, в основном, не реализовано, то есть оптимизатор не понимает, что запрос на самом деле один.
Неактивен
Ну, например, я получил замедление для случая, когда никакие индексы не используются. Т.е. поздапрос оптимизировать, в общем, не нужно.
Или имеется в виду, что запрос надо фактически выполнить два раза? (тогда непонятно, почему замедление на 15%, а не на 100%)
Неактивен
Подзапрос выполняется и его результат помещается во временную таблицу. Внешний запрос обращается к данной временной таблице (это быстрее, чем к таблице на диске).
Неактивен
А я тестировал для MEMORY-таблиц
Может быть, он там как-то уже более разобран..
Неактивен
Это может быть не буквально временная таблица, а внутреннее представление данных (хранится может как в памяти, так и на диске, в зависимости от объема - EXPLAIN об этом не говорит). Кстати, для больших таблиц, EXPLAIN выполняется долго - это еще одна недооптимизация.
Неактивен
Я так понимаю, что EXPLAIN выполняется также, как и запрос, просто данные не пересылаются.. (это предположение такое)
Неактивен
LazY написал:
Я так понимаю, что EXPLAIN выполняется также, как и запрос, просто данные не пересылаются.. (это предположение такое)
Обычно EXPLAIN не выполняет запрос, но видимо он выполняет все подзапросы.
Неактивен
Страниц: 1