Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

Today I Learned

인덱스 본문

DB

인덱스

꾸주니12 2022. 5. 6. 23:08

인덱스(색인)이란?

: 검색을 수월하게 해주는 모음집 (검색을 빠르게 하기 위한 수단)

- 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