https://github.com/ksundong/backend-interview-question 사이트를 참고하여 CS 질문 내용에 대해 답을 하면서 공부해보고자 한다.
추가 적인 쓰기 작업과 저장 공간을 활용하여 데이터베이스의 테이블의 검색 속도를 향상시키기 위한 자료구조
단점
1️⃣ 항상 정렬된 상태를 유지하기 때문에 insert, update, delete 과정에서는 Index 정보를 갱신하는 비용이 추가되어 상대적으로 속도가 저하된다.
INSERT : 새로운 데이터에 대한 인덱스를 추가
DELETE : 삭제하는 데이터의 인덱스를 사용하지 않는다는 작업 수행
UPDATE : 기존의 인덱스를 사용하지 않음 처리, 갱신된 데이터에 대한 인덱스 추가
2️⃣ 인덱스를 관리하기 위해서는 데이터베이스의 약 10%에 해당하는 저장공간이 추가로 필요하다.
3️⃣ 인덱스는 전체 데이터의 10 ~ 15% 이상의 데이터를 처리하거나, 데이터의 형식에 따라 오히려 성능이 낮아질 수 있다. 예를 들어 나이나 성별과 같이 값의 range가 적은 컬럼인 경우, 인덱스를 읽고 나서 다시 많은 데이터를 조회해야 하기 때문에 비효율적이다.