시스템 설계 · 기초
데이터베이스 인덱스(Index)는 무엇이며, 어떤 상황에서 주로 사용하고 어떤 이점을 제공하나요?
힌트 · 테이블의 특정 컬럼에 대한 빠른 데이터 검색을 돕는 자료구조이며, SELECT 쿼리 성능 향상에 큰 이점을 제공합니다.
인덱스B-Tree검색 성능WHERE 절쿼리 최적화
모범답안
데이터베이스 인덱스는 테이블의 특정 컬럼에 대한 데이터 검색 속도를 높이기 위해 사용하는 자료구조입니다. 마치 책의 찾아보기와 같다고 생각하시면 됩니다.
주로 WHERE 절에서 특정 값을 검색하거나, ORDER BY 절로 정렬할 때 사용됩니다. 예를 들어, 사용자 테이블에서 특정 user_id를 찾는 경우 인덱스가 있다면 전체 테이블을 스캔하지 않고도 빠르게 해당 데이터를 찾을 수 있습니다.
인덱스의 가장 큰 이점은 SELECT 쿼리의 성능을 크게 향상시킨다는 것입니다. 특히 데이터 양이 많은 테이블에서 효과적이며, 쿼리 응답 시간을 단축시켜 애플리케이션 성능 개선에 기여합니다. 다만, 인덱스를 너무 많이 생성하면 데이터 삽입, 수정, 삭제 시 오버헤드가 발생할 수 있으므로 신중하게 설계해야 합니다.
읽었다면, 이제 직접 답해볼 차례예요
패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.
함께 보는 데이터베이스 설계 면접 질문
- 데이터베이스 설계 과정에서 ERD(Entity-Relationship Diagram)를 사용하는 주된 목적은 무엇인가요?
- 정규화 단계 중 1차 정규형(1NF), 2차 정규형(2NF), 3차 정규형(3NF)이 각각 무엇을 의미하는지 간략하게 설명해주세요.
- 데이터베이스 테이블의 컬럼에 적절한 데이터 타입을 선택하는 것이 왜 중요한지, 그리고 어떤 점을 고려해야 하는지 설명해주세요.
- "한 명의 고객은 여러 개의 주문을 할 수 있다"는 비즈니스 요구사항을 관계형 데이터베이스로 설계할 때, 어떤 테이블과 컬럼을 사용하여 1:N(일대다) 관계를 표현할 수 있을까요?
- 실무에서 데이터베이스를 설계할 때, 정규화(Normalization)와 비정규화(Denormalization)를 어떤 기준으로 적용해야 하며, 성능상의 이유로 비정규화를 고려해야 하는 상황과 그 단점은 무엇인가요?
- 특정 테이블의 쿼리 성능을 최적화하기 위해 인덱스를 설계해야 합니다. 어떤 인덱스 종류(예: B-tree, Hash, 클러스터링, 논클러스터링)를 고려해야 하며, 복합 인덱스(Composite Index)는 언제 유용하게 사용될 수 있는지 설명해 주세요.