본문으로 건너뛰기
Previous
Next
Index 뜻과 의미 | 기술 용어 사전 | pkglog
데이터베이스

Index

다른 이름: 인덱스 , DB Index

정의

데이터베이스 검색 속도 향상 자료구조. B+Tree(MySQL InnoDB), LSM-Tree(RocksDB), Hash(PostgreSQL) 등. 책 색인처럼 컬럼 값→디스크 위치 매핑. WHERE, JOIN 성능 개선하나 INSERT/UPDATE 느림. Clustered(PK 정렬), Secondary(별도 저장)

상세 설명

📋 기술 스펙

  • B+Tree: 균형 트리, O(log n) 조회, 범위 쿼리 최적 (MySQL, PostgreSQL)
  • Hash Index: O(1) 동등 비교, 범위 쿼리 불가 (PostgreSQL, Memory 엔진)
  • LSM-Tree: Write 최적화, Compaction으로 읽기 성능 (RocksDB, Cassandra)
  • Full-Text Index: 텍스트 검색 (FULLTEXT, Elasticsearch)
  • Spatial Index: R-Tree, 지리 좌표 (PostGIS)
  • Composite Index: 다중 컬럼 (col1, col2, col3) → 최좌측 매칭
  • Covering Index: SELECT 컬럼 모두 인덱스에 포함 → 테이블 접근 불필요

💡 실무 활용

  • WHERE 절: WHERE user_id = 123 (B+Tree 조회)
  • JOIN: INNER JOIN orders ON users.id = orders.user_id
  • ORDER BY: 정렬된 B+Tree 리프 노드 순회
  • GROUP BY: 인덱스 스캔으로 중복 제거

장점

  • 조회 속도 향상: Full Scan O(n) → O(log n)
  • 범위 쿼리: B+Tree 리프 노드 순회
  • Covering Index: 디스크 I/O 감소
  • 정렬 회피: ORDER BY 최적화

⚠️ 단점 및 제약

  • 쓰기 오버헤드: INSERT/UPDATE 시 인덱스도 수정
  • 저장 공간: 테이블 크기의 10~30% 추가
  • 인덱스 선택 실패: 옵티마이저가 잘못된 인덱스 선택
  • Fragmentation: B+Tree 불균형 시 재구성 필요

🔧 호환성

MySQL, PostgreSQL, SQL Server, Oracle, MongoDB 모두 지원

📚 표준 정보

표준화 기구: SQL 표준 (ANSI SQL), 각 DB별 확장

출시 연도: 1970년