데이터베이스 인덱스는 조건에 맞는 행을 효율적으로 찾도록 별도로 유지하는 접근 구조이다. 여기서는 PostgreSQL을 예로 설명한다.
원리
열이나 식에 대한 검색 구조를 만들면 전체 행을 읽는 대신 필요한 위치를 좁힐 수 있다. 옵티마이저는 통계와 비용을 고려해 실제 사용 여부를 결정한다.
예시
주문 번호로 한 건을 찾는 질의가 많다면 해당 열의 인덱스가 탐색 비용을 줄일 수 있다. 조인이나 갱신 대상 검색에도 활용된다.
SQL |
|---|
SQL SELECT · SQL JOIN · SQL GROUP BY · SQL HAVING · SQL 공통 테이블 식 |
주의할 점
인덱스는 저장 공간과 쓰기 유지 비용을 요구한다. 모든 열에 무조건 만들기보다 실제 질의와 실행 계획을 확인하고 통계 정보를 관리해야 한다.