[데이터베이스] 정렬(Sort/Sorting) 줄이기

2022. 7. 8. 22:24·공부/데이터베이스
728x90

 

정렬은 데이터베이스에서 많은 부하를 일으킨다. 데이터베이스를 사용하는 대부분의 경우 데이터의 양이 매우매우 많기 때문에 그 데이터를 정렬하기는 부담이다. 가용 메모리로 데이터를 커버할 수 없는 경우 디스크까지 찾아가야 한다. 하지만 우리가 인덱스를 적절하게 잘 사용한다면 데이터베이스에서도 불필요한 Sort를 하지 않게된다. 

 

 

1️⃣ Merge Join 

Sort 원인 : Merge Join은 알고리즘 특성상 Merge 전 Sort를 한다. 사용할 때 유의해야 한다.

✅ 애초에 정렬된 인덱스인 Clustered Index를 사용하면 Sort 없이 조인을 할 수 있다.

 

2️⃣ ORDER BY

사용자가 원하는 순서로 정렬을 하기 위해 Sort가 사용된다.

✅ 테이블에 있는 인덱스 순서로 정렬을 한다면 불필요한 Sort를 하지 않아도 된다.

 

3️⃣ GROUP BY

집계를 위해 정렬이 사용된다.

4️⃣ DISTINCT

중복을 제거하기 위해 정렬을 사용한다.

5️⃣ UNION

중복을 제거하기 위해 정렬을 사용한다.

6️⃣ RANKING WINDOW FUNCTION

집계를 위해 정렬이 사용된다.

7️⃣ MIN MAX etc.

 

해결법이 없는 밑에 있는 케이스도 위의 두 가지와 마찬가지이다. 정렬이 필요한 부분이 인덱스로 이루어져있는지 살펴보고 인덱스 순서대로 데이터를 뽑아온다면 불필요한 Sort가 사라진다. 프로그램 부하가 줄어들고 가용 메모리 내에서 데이터베이스를 사용할 수 있게 된다.

 

 

728x90

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

[데이터베이스] SQL 에러 상태: 실패 -테스트 실패: Listener refused the connection with the following error:ORA-12505, TNS:listener does not currently know of SID given in connect descriptor  (0) 2024.03.28
[데이터베이스] JOIN(조인) : Nested Loop, Merge, Hash  (0) 2022.07.08
[데이터베이스] Transaction(트랜잭션)이란?  (0) 2022.07.07
[데이터베이스] 복합인덱스란?  (0) 2022.07.07
[데이터베이스] Clustered Index와 Non-Clustered Index  (0) 2022.07.02
'공부/데이터베이스' 카테고리의 다른 글
  • [데이터베이스] SQL 에러 상태: 실패 -테스트 실패: Listener refused the connection with the following error:ORA-12505, TNS:listener does not currently know of SID given in connect descriptor
  • [데이터베이스] JOIN(조인) : Nested Loop, Merge, Hash
  • [데이터베이스] Transaction(트랜잭션)이란?
  • [데이터베이스] 복합인덱스란?
돌멩이수프
돌멩이수프
Information technology
  • 돌멩이수프
    WHAT DOES "IT" STAND FOR?
    돌멩이수프
  • 전체
    오늘
    어제
    • 분류 전체보기 (239) N
      • 언어 (73)
        • html (3)
        • css (1)
        • java (6)
        • C (26)
        • C++ (2)
        • C# (29)
      • 공부 (7)
        • Unity (43)
        • 게임 서버 (26)
        • 네트워크 (5)
        • 데이터베이스 (7)
        • EFCore (19)
        • 기타 (14)
        • Git (5)
        • 운영체제 (1)
        • 소프트웨어공학 (21)
      • 2024-여름 (12)
      • 자기 관리 (4) N
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    EntityFramework
    HTML
    네트워크
    유니티
    백준
    게임서버
    C#
    Python
    EFCore
    코딩
    C언어
    unity
    라즈베리파이
    coding
    자바
    Entityfamework
    디자인패턴
    java
    tcp
    C
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.2
돌멩이수프
[데이터베이스] 정렬(Sort/Sorting) 줄이기
상단으로

티스토리툴바