반응형
쿼리에서 집계가 수행되지 않은 경우 왜 누군가가 그룹 별을 사용합니까?
또한 누군가가 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
반응형
'MySql' 카테고리의 다른 글
MySQL에서 병합 문을 사용할 수 있습니까? (0) | 2020.10.27 |
---|---|
MySQL Workbench가 키 체인에 비밀번호를 저장하지 않음 (0) | 2020.10.27 |
MySQL MIN / MAX 대 ORDER BY 및 LIMIT (0) | 2020.10.27 |
MySQL 단일 행에서 여러 열의 AVG를 선택하는 방법 (0) | 2020.10.27 |
MySQL PHP에서 MySQL 외래 키 제약 조건 무시 (0) | 2020.10.27 |
댓글