PK = 클러스터링 인덱스
- 원본 데이터 자체가 정렬되는 인덱스
- 기본적으로 인덱스가 적용됌
UNIQUE
- UNIQUE 제약 조건을 추가하면 자동으로 인덱스가 생성됌
- 조회 성능 향상
EXPLAIN (실행계획)
- SQL 문을 어떤 방식으로 어떻게 처리할 지를 계획한 걸 의미
# 실행 계획 조회하기
EXPALIN [SQL문]
# 실행 계획에 대한 자세한 정보 조회하기
EXPLAIN ANALYZE [SQL문]
type 의미
- ALL: 풀 테이블 스캔
- 인덱스를 활용하지 않고 테이블을 처음부터 끝까지 전부 다 뒤져서 데이터를 찾는 방식
- index: 풀 인덱스 스캔
- 인덱스 테이블을 처음부터 끝까지 다 뒤져서 데이터를 찾는 방식
- 인덱스 테이블 전체를 읽어야 하기 때문에 아주 효율적이라고 볼 수는 없음
- const: 1건의 데이터를 바로 찾을 수 있는 경우
- 고유 인덱스 또는 기본 키를 사용해서 1건의 데이터만 조회하는 경우
- 아주 효율적인 방식
- range: 인덱스 레인지 스캔
- 인덱스를 활용해 범위 형태의 데이터를 조회한 경우를 의미
- BETWEEN, 부등호, IN, LIKE를 활용한 데이터 조회
- 인덱스를 활용하기 때문에 효율적인 방식
- 하지만 데이터를 조회하는 범위가 클 경우 성능 저하의 원인이 되기도 함
- 해당 컬럼에 대한 INDEX 필요
- ref: 비고유 인덱스를 활용하는 경우
- UNIQUE가 아닌 컬럼의 인덱스를 사용한 경우 => 중복이 가능한 컬럼인 경우로 생각도 가능
'Database > MySQL' 카테고리의 다른 글
[MySQL] WHERE 튜닝 (0) | 2024.11.14 |
---|---|
[MySQL] 구조 (0) | 2024.11.14 |
[MySQL] DB 성능 최적화 경험? (0) | 2024.11.14 |
[MySQL] Index (0) | 2024.07.31 |
[MySQL] Stored Procedure/Function/Trigger (0) | 2024.07.31 |