[DB] 인덱스

오형상·2023년 4월 17일
0

데이터베이스

목록 보기
3/6
post-thumbnail

https://github.com/ksundong/backend-interview-question 사이트를 참고하여 CS 질문 내용에 대해 답을 하면서 공부해보고자 한다.


❓ 데이터베이스에서 인덱스를 사용하는 이유 및 장단점에 대해 설명해주세요.

🔍 인덱스(index) 란?

추가 적인 쓰기 작업과 저장 공간을 활용하여 데이터베이스의 테이블의 검색 속도를 향상시키기 위한 자료구조

✨ 인덱스 장/단점

  • 장점
    데이터가 정렬되어 있어 테이블을 조회하는 속도가 빠르다.
  • 단점
    1️⃣ 항상 정렬된 상태를 유지하기 때문에 insert, update, delete 과정에서는 Index 정보를 갱신하는 비용이 추가되어 상대적으로 속도가 저하된다.

    INSERT : 새로운 데이터에 대한 인덱스를 추가

    DELETE : 삭제하는 데이터의 인덱스를 사용하지 않는다는 작업 수행

    UPDATE : 기존의 인덱스를 사용하지 않음 처리, 갱신된 데이터에 대한 인덱스 추가

    2️⃣ 인덱스를 관리하기 위해서는 데이터베이스의 약 10%에 해당하는 저장공간이 추가로 필요하다.
    3️⃣ 인덱스는 전체 데이터의 10 ~ 15% 이상의 데이터를 처리하거나, 데이터의 형식에 따라 오히려 성능이 낮아질 수 있다. 예를 들어 나이나 성별과 같이 값의 range가 적은 컬럼인 경우, 인덱스를 읽고 나서 다시 많은 데이터를 조회해야 하기 때문에 비효율적이다.

0개의 댓글