모두 비용! 이므로 인덱스 설정을 많이 하지 말자.
항상 테스팅을 해보기
EXPLAIN
SELECT * FROM board
JOIN post
ON board.id = post.board_id
복합 인덱스를 최적화하는 방법은 ‘같음 → 정렬 → 다중값 → 카디널리티’ 순이다.
클러스터형 인덱스 | 논클러스터형 인덱스 (보조 인덱스) |
---|---|
기본키 중 하나로 설정 | 주로 복합키 |
테이블 당 한개 (보통 기본기가 클러스터형 인덱스가 됨) | 여러 개 만들 수 있음 |
인덱스 페이지의 리프노드에 데이터가 들어있음 | 인덱스 페이지의 리프노드에 데이터 대신 그 페이지의 포인터가 들어있음 |
정렬이 되어 있어 탐색은 빠르고, 삽입,수정,삭제가 느림 | 정렬이 되어 있지 않아서 탐색은 느리지만, 삽입, 수정, 삭제가 빠름 |
인덱스 순서와 데이터 순서가 일치함 | 인덱스 순서와 데이터 순서가 뒤죽박죽 |
클러스터형 인덱스 생성시 (MySQL 기준)
alter table add primary key
논클러스터형인덱스 생성시 (MySQL 기준)
create index …alter table add index