공부/데이터베이스

Sorting

원클릭쓰리버그 2022. 3. 24. 17:08
728x90
USE BaseballData

-- Sorting (정렬) 을 줄이자 !

-- O(N LogN) -> DB는 데이터가 어마어마하게 많다
-- 너무 용량이 커서 가용 메모리로 커버가 안 되면 -> 디스크까지 찾아간다.

/*
-- Sorting이 일어날 때
--	1) Sort Merge Join
		-- 원인) 알고리즘 특성상 Merge하기 전에 Sort를 해야 함
	2) ORDER BY
	3) GROUP BY
	4) DISTINCT
	5) UNION
	6) RANTKING WINDOWS FUNCTION
	7) MIN MAX

*/
-- ORDER BY
-- 원인) ORDER BY 순서로 정렬을 해야 하니까 Sort
SELECT* 
FROM players
ORDER BY college;

-- GROUP BY
-- 원인) 집게를 하기 위해
SELECT college, COUNT(college)
FROM players
WHERE college LIKE 'C%'
GROUP BY college;

-- DISTINCT
-- 중복 제거를 용도
SELECT DISTINCT college
FROM players
WHERE college LIKE 'C%' 

-- UNION
-- 합침에 있어 중복 제거
SELECT college
FROM players
WHERE college LIKE '%C'
UNION 
SELECT college
FROM players
WHERE college LIKE 'B%'

-- 순위 윈도우 함수
-- 집게를 하기 위해서
SELECT ROW_NUMBER() OVER (ORDER BY college)
FROM players;

--> INDEX를 잘 활용하면 불필요한 Sorting이 불필요하다.
-- INDEX 별 우선순위에 맞게 Sorting을 한다면, Sorting을 할 필요가 없다.

'공부 > 데이터베이스' 카테고리의 다른 글

데이터 베이스 원리  (0) 2022.03.24
JOIN의 원리  (0) 2022.03.21
BookMark LoopUp  (0) 2022.03.14
INDEX SCAN vs INDEX SEEK  (0) 2022.03.14
Clustered VS Non-Clustered  (0) 2022.03.11