TIL 23/1/13

드립이 블로그·2023년 1월 13일
0

TIL

목록 보기
52/80

오늘은 인덱스에 대해 배웠다.

인덱스 없이 원하는 column을 찾으려면, 순차적으로 찾기 시작하기 때문에 자신이 원하는 데이터를 찾는데까지 많은 시간이 소요된다.
하지만, 인덱스를 붙이게 된다면, balanced tree노드가 생성이 되어 빠르게 탐색이 가능해진다.
인덱스는 각 column에 붙이는 것이 가능하다.
하지만 인덱스는 WHERE절에서 사용되는 column에 만드는 것이 좋다.

인덱스의 장단점
인덱스를 사용하게 되면 SELECT문의 검색 속도가 매우 빨라지게 된다.
하지만 인덱스가 공간을 차지하기 때문에, 추가적인 공간이 필요해지고, INSERT, UPDATE, DELETE 등 데이터 변경 작업이 자주 일어날 경우, 오히려 성능이 저하될 수 있다.

인덱스의 종류

클러스터형 인덱스
특정 column을 Primary Key로 설정시, 자동으로 클러스터형 인덱스가 생성된다.
데이터가 오름차순으로 정렬되어있다.

보조 인덱스
특정 column을 Unique로 설정시 자동으로 보조 인덱스가 생성된다.
데이터가 정렬되지 않는다.
사용자가 인덱스를 직접 생성하는 것도 보조 인덱스이다.

CREATE INDEX
	ON 테이블명 ASC or DESC

이와 같이 사용자가 생성한 인덱스는

ANALYZE TABLE 테이블명

과 같이 인덱스를 적용해줘야 한다.

인덱스가 현재 데이터가 별로 없을때 해본 것이라 필요하다는 느낌을 받지는 못했다.
데이터 양에 따라 얼마나 차이날지는 조금 궁금해지기는 한다.

0개의 댓글