IT수업/데이터베이스

it 수업 6주차 (20) index

워제하 2024. 2. 2. 12:14

-------------------------
INDEX
-------------------------
-- 데이터베이스 테이블의 검색 성능을 향상시키기 위해 사용되는 데이터 구조
-- where 이하 조건절 열에 index로 지정된 열을 사용한다.
-- index로 지정된 열은 기본적으로 정렬 처리가 된다.(모든 DBMS는 아님)

 

 

------------------------------
MYSQL INDEX 종류
------------------------------
-- B-Tree    : 기본값, 대부분의 데이터 index에 잘 적용되어 사용
-- Hash      : 해시 함수를 이용한 index, 정확한 일치 검색에 사용(포함검색에는 다소 성능이 저하될 수 있다.)
-- Full-text : 전체 택스트 검색에 사용되는 index, 텍스트 검색기능 향상시 유리
-- Spatial   : 공간데이터(위도/경도 등을 담는 지도데이터)을 처리하기 위한 Index, 지리 정보 검색에 유리

 

 ------------------------------
 MYSQL INDEX TYPE
 ------------------------------
-- 클러스터형 인덱스    : Pk열에 기본적으로 적용되는 index, 사전편찬 순서에 맞게 정렬이 된다. [기본 :B-Tree]
                                     : 한 테이블에 한개만 생성 
                                     : 실제 데이터의 정렬이 인덱스의 순서로 정렬 
                                     : 보조 인덱스보다 빠른 속도

-- 보조(Secondary) 인덱스 : PK이외 다른 제약조건이나 수동으로 설정시 적용 [기본 :B-Tree]
                                           : 한 테이블에 여러 index를 생성

 

 

 

< index 설정하기 >

 

새 테이블을 만들어 primary key를 설정해준다.

 

tbl_a 테이블의 설정에 들어가면 primary key에 index가 설정 되어있는 것을 볼 수 있다.

 

 

 

 

 

또 다른 테이블을 만들어 이번에는 PK와 unique를 각각 설정해준다.

 

역시 설정에 들어가서 index를 확인해보면 각각 pk와 unique가 설정된 것을 볼 수 있다.

 

 

 

< index 삭제하기 >

* alter table tbl_b drop constraint col2; 대신에 alter table tbl_b drop index [인덱스명]; 도 사용 할 수 있다.

 

alter table tbl_b drop primary key; 하면 PK가 사라진 것을 볼 수 있고

 

 

alter table tbl_b drop constraint col2; 하면 unipe로 설정한 col2가 사라진 것을 볼 수 있다.

 

 

 

< 보조 index 만들기 >

 

 

unique index col2_index(col2) 로 만들어진 열에 index를 추가해 줄 수 있다.

 

 

 

또 여러 열들을 지정해 하나가 아닌 여러 열에 index를 줄 수 있다.

unique index col2_3_index(col2,col3)

 

 

 

또 다른 방법으로는 이미 만들어진 테이블의 열에 추가로 index를 설정해 주는 것이다.

create index col2_idx on tbl_e(col2);  를 사용하면 된다.

 

 

 

외래키 설정했을 때도 index가 만들어진다.