RDB에서 사용하는 인덱스는 구조에 따라 다음과 같이 세 가지로 분류할 수 있다.B-tree 인덱스비트맵 인덱스해시 인덱스B-tree 인덱스데이터를 트리 구조로 저장하는 형태의 인덱스이다.균형잡힌 뛰어난 범용성을 인정받아 가장 많이 사용된다. 사실 대부분의 데이터베이스는 트리의 리프 노드에만 키 값을 저장하는 B+tree를 채택한다.B+tree는 B-tree에 비해 검색을 보다 효율적으로 만든 알고리즘이다. 하지만 본질적인 특징은 B-tree와 B+tree가 다르지 않다. 기타 인덱스비트맵 인덱스는 데이터를 비트 플래그로 변환해서 저장하는 형태의 인덱스로, 카디널리티가 낮은 필드에 대해 효과를 발휘한다.하지만 갱신할 때 오버헤드가 너무 크기 때문에 BI/DWH 용도로 사용된다. 해시 인덱스는 키를 해시 ..
테이블 : 영속적인 데이터를 저장뷰 : 영속적이지만 데이터는 저장하지 않음. 따라서 접근할 때마다 SELECT 구문이 실행됨서브쿼리 : 비영속적인 생존 기간이 SQL 구문 실행 중으로 한정서브쿼리의 문제점서브쿼리의 성능적 문제는 결과적으로 서브쿼리가 실체적인 데이터를 저장하고 있지 않다는 점에서 기인한다.이에 따라 다음과 같이 세 가지 문제가 발생한다. 실체적인 데이터를 저장하고 있지 않은 서브쿼리에 접근할 때마다 SELECT 구문을 실행해서 데이터를 만들어야 한다는 뜻이다.따라서 구문 실행에 발생하는 비용이 추가된다. SELECT 구문의 연산 결과를 사용하기 위해서 메모리에 저장해야 한다.만약 메모리의 공간이 충분하다면 상관 없지만, 아닐 경우 저장소에 저장할 때도 있다.이를 TEMP 탈락 현상의 일종..