Day 42 · 1/5
🌿 중급 DB

인덱스(Index)가 뭔가요?

쉽게 이해하기

책 뒤에 있는 '찾아보기'를 떠올려보세요. 500페이지 책에서 '데이터베이스'라는 단어를 찾으려면 처음부터 끝까지 읽어야 하지만, 찾아보기가 있다면 바로 124페이지로 갈 수 있어요. 데이터베이스의 인덱스도 똑같이 작동합니다.

핵심 정리

데이터베이스에서 검색 속도를 빠르게 해주는 책의 찾아보기 같은 구조예요.

자세히 알아보기

인덱스는 데이터베이스 테이블에서 특정 데이터를 빠르게 찾기 위한 정렬된 구조예요. 수백만 개의 데이터가 있는 테이블에서 특정 사용자를 찾을 때, 인덱스가 없으면 모든 데이터를 하나씩 확인해야 하지만, 인덱스가 있으면 몇 번의 비교만으로 원하는 데이터를 찾을 수 있습니다. 실무에서는 자주 검색하는 컬럼에 인덱스를 만들어요. 예를 들어 이메일로 사용자를 찾는 로그인 기능이 있다면, 이메일 컬럼에 인덱스를 걸어두는 거죠. 그러면 로그인할 때마다 몇 초씩 걸리던 검색이 0.01초 만에 끝납니다. 하지만 인덱스가 많다고 항상 좋은 건 아니에요. 인덱스를 만들면 추가 저장 공간이 필요하고, 데이터를 추가하거나 수정할 때마다 인덱스도 함께 업데이트해야 해서 쓰기 작업이 느려질 수 있어요. 그래서 정말 자주 검색하는 컬럼에만 인덱스를 만드는 게 중요합니다. 대부분의 데이터베이스는 primary key(기본 키)에는 자동으로 인덱스를 만들어줘요. 그래서 ID로 사용자를 찾는 건 항상 빠른 거예요. 추가로 필요한 검색 조건이 있을 때만 직접 인덱스를 만들면 됩니다.