Search

Index

1.
Index가 왜 필요한가요?
Index는 책의 목차처럼 데이터베이스에서 특정 레코드를 빠르게 찾기 위해 사용됩니다. 테이블 전체를 스캔하는 대신 B+Tree 구조로 구성된 인덱스를 탐색해 검색 속도를 O(log n)으로 향상시킵니다. 단, 인덱스는 추가 저장 공간을 차지하며, 데이터 삽입/수정/삭제 시 성능 저하가 발생할 수 있습니다.
2.
Index를 어느 Column에 사용하는 것이 좋을까요?
WHERE 절에서 자주 조회되는 열 (예: 회원ID).
고유한 값이 많은 열 (예: 이메일 주소).
JOIN 조건으로 사용되는 외래 키.
반대로, 값의 종류가 적은 열(예: 성별)이나 자주 수정되는 열은 인덱스 효율성이 낮습니다.
3.
Hash Table의 시간복잡도는 O(1)인데, Index는 왜 B+Tree로 구현됐나요?
Hash Table은 단일 키 검색에는 빠르지만, **범위 검색(예: 2020년~2023년 데이터)**이나 정렬된 결과 출력이 불가능합니다. B+Tree는 데이터를 정렬된 상태로 유지하며 범위 검색을 효율적으로 처리할 수 있기 때문에 데이터베이스 인덱스에 적합합니다.