Когда сервер GROUP BY все еще тратит ресурсы на обработку запроса UNGROUPED? - PullRequest
0 голосов
/ 08 сентября 2011

Мне нужно сделать второй запрос внутри одного, пока я сделал это так, а затем просто сгруппировал по полю userid, работает. Но без группировки он показывает слишком много результатов, и мне было интересно, действительно ли эти сгруппированные результаты сначала запрашиваются, а затем фильтруются, чтобы загрузить сервер MySQL?

SELECT mn.userid, user_table.first_name, user_table.last_name, employer_info.emp_name, emp2.emp_name AS emp2name 

    FROM main as mn

        LEFT JOIN position_info ON position_info.pos_id = mn.position
        LEFT JOIN employer_info ON employer_info.emp_id = position_info.emp_id 

        LEFT JOIN position_info AS position2 ON pos2.pos_id = mn.position2
        LEFT JOIN employer_info AS emp2 ON emp2.emp_id = pos2.emp_id 


        WHERE mn.type = 31 or mn.type = 3
    GROUP BY mn.userid

Будет ли такой способ построения запроса более дружественным к ресурсам?

SELECT mn.userid, user_table.first_name, user_table.last_name, employer_info.emp_name, emp2.emp_name AS emp2name 

    FROM main as mn

        LEFT JOIN position_info ON position_info.pos_id = mn.position
        LEFT JOIN employer_info ON employer_info.emp_id = position_info.emp_id 

        LEFT JOIN employer_info AS emp2 ON emp2.emp_id = {
SELECT emp_id FROM position_info WHERE pos_id = mn.positions2
                 )


        WHERE mn.type = 31 or mn.type = 3
        GROUP BY mn.userid

запрос выглядит практически одинаковым по длине, но возвращает гораздо меньше результатов, когда не сгруппирован, поэтому лучше сделать это первым или вторым способом?

P.S. не обращайте внимания на код, это не вопрос

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...