Backend 개발/SQL 성능 개선
쿼리 튜닝의 핵심, 인덱스(Index)란?
수달리즘
2025. 4. 16. 11:05
반응형
인덱스란?
데이터를 빨리 찾기 위해 특정 컬럼을 기준으로 미리 정렬해놓은 표
ex) 나이가 32인 user를 찾으라 할 때 나이 순으로 정렬해놓고 30살 시작되는 지점과 40살로 시작되는 지점만 찾으면 훨씬 더 빠르게 찾을 수 있다.
정렬되어있지 않다면 모든 행을 일일이 검사해서 32인 사용자를 뽑아내야 한다.
→ 데이터가 많을수록 시간이 오래 걸릴 수밖에 없음
기본으로 설정되는 인덱스
1. PK(기본키)
PK의 특징 중 하나는 PK를 기준으로 정렬해서 데이터를 보관하는 것이다.
- 실제로 id(PK)값이 43,988이었던 데이터를 2로 변경하고 select * from [테이블명] 를 해보니 2번째에서 조회됨! (정렬된 채로 조회됨)
- 인덱스는 보이지 않는 '표'이다. 근데 PK는 원본 데이터 자체가 정렬되어 조회되는데 이렇게 원본 데이터 자체가 정렬되는 인덱스를 보고 클러스터링 인덱스라고 부른다.
PK = 클러스터링 인덱스라고 생각해도 된다. 클러스터링 인덱스는 PK밖에 없기 때문
2. UNIQUE 제약조건
대부분의 RDBMS에서는 UNIQUE 제약조건 추가 시, 자동으로 인덱스가 생성되므로 조회 성능이 향상됨
ex) MySQL, MariaDB, Oracle, PostgreSQL, SQL Server
728x90
반응형