본문 바로가기
MySql

MySQL SQL 그룹 별 대 구별

by 베이스 공부 2020. 10. 27.
반응형

쿼리에서 집계가 수행되지 않은 경우 왜 누군가가 그룹 별을 사용합니까?

또한 누군가가 MySQL 및 SQL Server의 개별 성능 고려 사항과 비교하여 그룹을 알고 있습니까? SQL Server가 더 나은 최적화 프로그램을 가지고 있고 그와 비슷한 수준에 가깝다고 생각하지만 MySQL에서는 뚜렷한 성능 이점을 기대합니다.

나는 dba 답변에 관심이 있습니다.

편집하다:

Bill의 게시물은 흥미롭지 만 적용 할 수 없습니다. 좀 더 구체적으로 말씀 드리겠습니다 ...

select a, b, c 
from table x
group by a, b,c

select distinct a,b,c
from table x

 

해결 방법

 

우리 DB의 무작위 테이블 몇 개에 MS SQL Server의 약간의 (아주 조금) 경험적 데이터.

패턴의 경우 :

SELECT col1, col2 FROM table GROUP BY col1, col2

SELECT DISTINCT col1, col2 FROM table 

쿼리에 대한 커버링 인덱스가없는 경우 두 가지 방법 모두 다음 쿼리 계획을 생성했습니다.

|--Sort(DISTINCT ORDER BY:([table].[col1] ASC, [table].[col2] ASC))
   |--Clustered Index Scan(OBJECT:([db].[dbo].[table].[IX_some_index]))

커버링 인덱스가있을 때 둘 다 다음과 같이 생성되었습니다.

|--Stream Aggregate(GROUP BY:([table].[col1], [table].[col2]))
   |--Index Scan(OBJECT:([db].[dbo].[table].[IX_some_index]), ORDERED FORWARD)

그래서 아주 작은 샘플 SQL Server는 확실히 두 가지를 동일하게 취급합니다.

 

참조 페이지 https://stackoverflow.com/questions/426723

 

 

반응형

댓글