index5 B+Tree, B-Tree B+Tree인덱스가 B+Tree로 되어있는 이유데이터가 리프노드에만 있다B-Tree와 다르게 Best, Worst가 없이 탐색의 시간복잡도는 무조건 O(log N)이다리프노드는 연결 리스트의 형태로 되어있어서 인접한 다음 노드에 바로 접근 가능하다. (B-Tree와 다르게 선형 탐색 가능)B-Tree비교구분B-treeB+tree데이터 저장리프 노드, 브랜치 노드 모두 데이터 저장 가능오직 리프 노드에만 데이터 저장 가능트리의 높이높음낮음(한 노드 당 key를 많이 담을 수 있음)풀 스캔 시, 검색 속도모든 노드 탐색리프 노드에서 선형 탐색 키 중복없음있음(리프 노드에 모든 데이터가 있기 때문)검색자주 access 되는 노드를 루트 노드 가까이 배치할 수 있고, 루트 노드에서 가까울 경우, 브랜치 노드에도.. 2025. 1. 17. Index Range Scan 범위가 결정된 인덱스를 순차적으로 읽는 방식스캔 과정인덱스 탐색: 인덱스 조건을 만족하는 값이 저장된 위치를 찾음인덱스 스캔: 시작 위치부터 범위에 해당하는 인덱스를 순차적으로 읽음랜덤 I/O: 인덱스와 PK를 이용해 테이블 레코드를 읽어옴그 외의 다른 스캔 종류인덱스 유니크 스캔 (Index Unique Scan)유일한 값 하나를 조회할 때 사용Primary Key 또는 Unique 제약 조건이 있는 컬럼에서 주로 사용됨인덱스 풀 스캔 (Index Full Scan)인덱스의 모든 레코드를 읽을 때 사용주로 ORDER BY 나 GROUP BY와 같은 정렬 작업에서 사용됨인덱스 스킵 스캔 (Index Skip Scan)다중 컬럼 인덱스에서 첫 번째 컬럼에 조건이 없더라도 두 번째 컬럼 이후의 조건을 이용해.. 2025. 1. 16. Index의 랜덤 I/O와 순차 I/O 랜덤 I/O디스크의 비연속적인 위치에 저장된 데이터를 읽을 때 발생인덱스를 통해 테이블 데이터를 참조할 때 해당 페이지가 디스크의 여러 비연속적인 위치에 저장되어 있다면 디스크의 헤드 이동이 많아져 랜덤 I/O가 발생읽기 성능이 저하될 수 있으며 디스크 기반 스토리지에서 더 큰 성능 저하를 유발순차 I/O디스크의 연속적인 위치에 저장된 데이터를 읽을 때 발생데이터가 물리적으로 연속된 페이지에 저장되어 있다면 디스크 헤드가 연속적으로 이동하면서 데이터를 읽기 때문에 랜덤 I/O에 비해 속도가 빠름범위 조회 쿼리나 정렬된 데이터 조회 시 순차 I/O가 유리 2025. 1. 16. 이전 1 2 다음 728x90 반응형