본문 바로가기

인덱스

(2)
[데이터베이스] 10. DBMS의 버퍼 관리와 쿼리 비용 추정 DBMS의 버퍼 관리 질의 과정에서 데이터에 접근하기 위해서는 테이블의 레코드들이 실제 물리 메모리의 버퍼 공간에 할당되어야 한다. 물리 메모리는 디스크에 비해 매우 적은 공간이며 이에 따라 적절한 교체 정책이 필요하다. DBMS는 로 이를 관리한다. 이는 메모리 버퍼의 몇 번 프레임에 디스크의 몇 번 페이지를 올렸는지를 의미한다. 특정 페이지가 요청된 경우의 시나리오는 다음과 같다. IF) 해당 페이지가 버퍼에 존재할 경우 -> 바로 반환 ELSE) 해당 페이지가 버퍼에 존재하지 않는 경우 버퍼에서 교체할 프레임을 선택한다. 교체할 프레임이 dirty면 이를 디스크에 기록한다. 요청한 페이지를 디스크에서 버퍼의 해당 프레임으로 로드한다. 각 프레임은 pin count로 얼마나 사용되고 있는 지를 기록하..
[데이터베이스] 9. 인덱스와 인덱스 구조별 비용 추정 인덱스 인덱스란 검색키를 기반으로 효율적인 질의를 돕는 메커니즘이다. 한 테이블의 특정 필드를 인덱스로 설정할 경우 전체 테이블을 full scan하는 것이 아닌 인덱스의 검색키 만으로 스캔하여 빠르다. 다만, 인덱스를 사용할 경우 공간적인 오버헤드가 약간 증가한다. 그리고, 갱신 작업 또한 약간의 시간적 오버헤드가 발생한다. 기존의 경우 해당 테이블의 실제 데이터만 수정하면 되지만, 인덱스가 있을 경우 인덱스의 검색키 또한 바꿔야 하며 그에 따라 인덱스의 구조가 변경될 수 있기 때문이다. 파일 구조에 따른 인덱스의 종류 B 트리 인덱스 B 트리의 구조를 띄는 인덱스로 하나의 노드에 2개 이상의 엔트리가 존재한다. 해당 구조의 특징은 아래와 같다. 범위 탐색에 유리하다. 성능은 트리의 높이에 따라 결정된..