더북(TheBook)

BETTER WAY 11 인덱스와 데이터 스캔을 최소화하도록 인덱스는 신중히 만들자

하드웨어를 추가해 성능을 향상시킬 수도 있지만, 보통은 쿼리를 튜닝하면 훨씬 적은 비용으로도 탁월한 효과를 낼 수 있다. 흔히 성능 문제는 인덱스가 부족하거나 올바르지 않은 인덱스를 만들어서 발생하기에 데이터베이스 엔진은 쿼리 조건을 만족하는 레코드를 찾는 데 필요 이상으로 많은 데이터를 처리할 가능성이 크다. 이렇게 데이터를 찾는 프로세스는 인덱스 스캔(Index Scan)과 테이블 스캔(Table Scan)으로 나눌 수 있다.

쿼리를 만족하는 레코드를 정확히 짚어 내려고 인덱스를 사용하는 것을 인덱스 탐색(Seek)이라고 하며, 데이터베이스 엔진이 적합한 레코드를 찾으려고 인덱스와 데이터 페이지를 스캔하는 것을 각각 인덱스 스캔, 테이블 스캔이라고 한다. 데이터가 많을수록 인덱스 스캔을 완료하는 데 걸리는 시간은 길다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.