이 게시물에 : SQL Query to get the data.MAX는() 쿼리의 성능을 향상합니까?
첫 번째 답은 2가
SELECT students.student_id,student_name,father_name,mother_name,
COUNT(student_addresses.student_id) AS total_addresses,
COUNT(student_phones.student_id) AS total_phones
FROM students,student_phones,student_addresses
WHERE students.student_id = student_phones.student_id AND
students.student_id = student_addresses.student_id AND
students.student_id = 7
GROUP BY BY students.student_id,student_name,father_name,mother_name;
동안 :
SELECT s.student_id,
max(s.student_name) student_name,
max(s.father_name) father_name,
max(s.mother_name) mother_name,
COUNT(distinct a.student_address_id) total_addresses,
COUNT(distinct p.student_phone_id) total_phones
FROM students s
LEFT JOIN student_phones p ON s.student_id = p.student_id
LEFT JOIN student_addresses a ON s.student_id = a.student_id
WHERE s.student_id = 7
GROUP BY s.student_id
이제 질문 : 두 개의 쿼리 사이에 상당한 차이가 그 성능에 관해서? MAX()
의 사용이 두 번째 쿼리의 실행 시간에 영향을 줍니까?
나는 대답하지만 운이 없다. 나는 이것에 대한 명확하고 구체적인 설명을 원한다.
기독교인, 나는 Max가 내부에서 외부 조인으로의 변화에 영향을 미치지 않을 것이라고 생각합니다. 정말로보고 싶다면 집계 함수의 사용을 제외하고 두 쿼리를 동일하게 만들 것입니다. – asantaballa
GROUP BY IN은 성능을 향상시키지 않습니다. –