[데이터베이스] 22. 외부 정렬
·
CS/기초데이터베이스
데이터베이스에서는 다양한 이유로 레코드를 정렬해야 할 때가 있다. - order by 와 같은 SQL을 처리해야 할 수도 있고- 트리 인덱스에 데이터를 많이 넣고자 할 때도 정렬이 필요하고- projection 연산 결과로 중복을 제거할 때도 정렬이 유용하며- 조인을 구현할 때 정렬을 사용하여 조인할 수도 있다. 우리가 흔히 쓰는 정렬 알고리즘은 in place 방식이라고 하더라도 O(N)의 공간복잡도가 필요하다.하지만 요즘 메인 메모리의 크기가 점점 늘어나고는 있음에도 처리해야 할 데이터는 너무 많아서 메인 메모리만으로는 모든 데이터를 한번에 정렬할 수 없다.그렇다고 디스크를 메모리처럼 보고 정렬하기에는 너무 많은 입출력 비용이 발생하기 때문에 디스크 접근 비용을 최소화하면서 적은 메모리로 데이터를 정..