Today I Learned
인덱스 본문
인덱스(색인)이란?
: 검색을 수월하게 해주는 모음집 (검색을 빠르게 하기 위한 수단)
- Primary key 와 Unique key를 걸면 자동으로 인덱스가 생성
- 키가 있고 없고 검색속도가 다름
- 디비마다 인덱스가 다름
장점
- 검색 속도가 빨라짐
- 시스템의 부하를 줄여 성능 향상
단점
- 전체 데이터의 내용을 축약해 놓은 것 이므로 생성시 시간이 걸리고 공간이 필요
- 삽입/갱신/삭제 가 빈번히 일어날 경우 성능 저하
Index가 필요한 경우
- 데이터가 많고 검색이 많이해야할 경우
- join이 많이 사용된 경우
Index가 불필요한 경우
- 데이터가 적을 경우
- 삽입/갱신/삭제가 빈번히 일어나는 경우 - 시간도 오래걸리고 음 인덱스가 무의미한 느낌? 그리고 성능 저하
(1) 고유 (unique) 인덱스
- 가장많이 사용함
- 중복되지 않은 데이터를 인덱스로 삼는다.
- 기본키나 유니크키가 설정되면 고유인덱스가 생성 된다. pk 나 유니크키가 있으면 이미 인덱스 있는거
- create unique index [index name] on [table([colunm])];
(2) 비고유 (non-unique) 인덱스
- 중복 데이터가 있어도 인덱스를 걸 수 있다.
- create index [index name] on [table([colunm])];
(3) 결합 인덱스 (combination)
- 최대 16개 컬럼을 조합해서 인덱스 생성 가능
- 고유 인덱스, 비고유 인덱스 둘다 만드는 것이 가능
- create unique index [index name] on [table([colunm,....])];
- create index [index name] on [table([colunm,...])];
(4) 인덱스 확인
- show index from [테이블명]
emp테이블의 외래키에 비고유 인덱스가 걸어져있는걸 확인할 수 있음
(5) 인덱스 삭제
- alter table [table name] drop index [index name];
12_Index
'DB' 카테고리의 다른 글
정규화(normalization) (0) | 2022.05.07 |
---|---|
뷰(View) (0) | 2022.05.06 |
in & exists 그리고 any & all (0) | 2022.05.02 |
집합 (0) | 2022.05.01 |
조인(Join) (0) | 2022.05.01 |