📌 논클러스터링 인덱스가 필요한 이유

클러스터링 인덱스는 테이블의 물리적 정렬을 결정하기 때문에 한 테이블에 하나만 생성 가능해.

그런데 현실에서는 하나의 테이블을 여러 기준으로 검색해야 하는 경우가 많아.

✅ 예를 들어, Employees 테이블이 있다고 해보자.

EmployeeID (PK) Name Department
101 Alice HR
102 Bob IT
103 Charlie IT
104 David HR
105 Eve Marketing

📌 1. 클러스터링 인덱스만 있으면 문제점 발생


📌 논클러스터링 인덱스 활용 예시

1️⃣ 이름(Name)으로 자주 검색하는 경우

클러스터링 인덱스는 EmployeeID에만 걸려 있어서, Name으로 검색하면 전체 테이블을 검색해야 함

➡ 논클러스터링 인덱스를 추가하면 검색이 훨씬 빨라져!

📌 논클러스터링 인덱스 추가

sql
복사편집
CREATE INDEX idx_name ON Employees (Name);

논클러스터링 인덱스가 적용된 경우

Name (정렬됨) EmployeeID (원본 데이터 위치)
Alice 101
Bob 102
Charlie 103
David 104
Eve 105

SELECT * FROM Employees WHERE Name = 'Charlie'; 실행하면?

1️⃣ idx_name에서 Charlie를 찾음

2️⃣ CharlieEmployeeID = 103을 가져옴