인덱스(Index)는 데이터베이스 테이블에 대한 검색 속도를 눈부시게 향상시켜주는 "찾아보기(색인)" 자료구조입니다. 인덱스가 없으면 DB는 데이터를 찾을 때 테이블의 처음부터 끝까지 무식하게 다 뒤져야 하는 풀 테이블 스캔(Full Table Scan)을 하게 됩니다.
💡 핵심 비유
두꺼운 백과사전의 맨 뒷장 색인 "오라클"이라는 단어를 찾기 위해 백과사전 1000페이지를 한 장씩 넘기는 게 아니라, 맨 뒤의 'ㅇ' 색인에서 "오라클 - 452페이지"를 확인하고 한 번에 452페이지를 펼치는 것과 동일합니다.
🧩 원리 이해하기
Script-1.sql
1
-- 자주 검색되는 컬럼(예: EMAIL)에 인덱스를 생성합니다.
-- 생성 후 해당 컬럼으로 WHERE 검색을 하면 속도가 비약적으로 빨라집니다.
CREATE INDEX IDX_USERS_EMAIL
ON USERS(EMAIL);
-- 이제 아래 쿼리는 100만 건의 데이터에서도 순식간에 결과를 찾습니다.
-- SELECT * FROM USERS WHERE EMAIL = 'alex@mail.com';