DB - 인덱스(1) 개념, 사용 장 단점

itonse·2024년 4월 22일
0

CS 스터디

목록 보기
28/56

1. 인덱스의 개념

  • 인덱스는 데이터베이스에서 검색 성능을 향상시키는 자료 구조입니다.

  • 데이터 검색 시 full scan하는게 아닌 Index 파일을 통해서 빠르게 데이터를 찾을 수 있게 해줍니다.

  • 데이터베이스 테이블의 특정 컬럼에 인덱스를 생성하면, 해당 컬럼의 데이터는 정렬되어 별도의 메모리 공간에 물리적 주소와 함께 저장됩니다.

  • 이 구조는 데이터 접근 속도를 빠르게 하여, 데이터 검색 및 처리 성능을 향상시킵니다.



2. 인덱스의 작동 원리

  • 설정: 테이블의 특정 컬럼에 인덱스를 설정합니다.
  • 저장: 정렬된 데이터가 물리적 주소와 함께 별도의 메모리에 저장됩니다.
  • 활용: SQL 쿼리에서 WHERE 조건으로 인덱스 컬럼이 사용될 때, 옵티마이저는 이 인덱스를 활용해 빠르게 데이터를 찾습니다.
  • 접근: 쿼리 실행 시, 인덱스에 저장된 물리적 주소를 통해 직접 해당 데이터 위치로 접근합니다.



3. 인덱스 사용의 장점

  1. 성능 향상
    • 테이블 조회 속도가 증가하며, 전체 데이터베이스 성능이 개선됩니다.
  2. 시스템 부하 감소
    • 데이터 접근 효율성이 증가함으로써 시스템 전체의 부하가 감소합니다.



4. 인덱스 사용의 단점

  1. 추가 공간 요구

    • 인덱스를 유지하기 위해 데이터베이스의 약 10~15%의 추가 저장 공간이 필요합니다.
  2. 유지 관리 필요

    • 인덱스가 데이터의 정렬된 상태를 지속적으로 유지해야 합니다.
    • 기존 테이블에 있던 데이터에 INSERT, UPDATE, DELETE 작업을 해버리면 이것을 인덱스에도 똑같이 반영을 해줘야 합니다.
  3. 잘못된 사용의 위험

    • 부적절하게 사용된 인덱스는 오히려 성능 저하를 초래할 수 있습니다.



5. 인덱스를 사용하면 좋은 경우

  • 조회 중심의 컬럼
    • SELECT가 자주 발생하고, INSERT, UPDATE, DELETE가 자주 발생하지 않는 컬럼
  • 대규모 테이블
  • JOIN, WHERE, ORDER BY에 자주 사용되는 컬럼
  • 중복된 데이터가 별로 없는 컬럼


ref.
https://nohriter.tistory.com/146
https://coding-factory.tistory.com/746
https://land-turtler.tistory.com/120

0개의 댓글