[Database] 인덱스란?
ref -우재남, 『이것이 SQL Server다』, 한빛미디어(2020)
📌인덱스란? Index
- 인덱스는 데이터를 빠르게 찾을 수 있도록 도와주는 도구다.
- 인덱스에는 클러스터형 인덱스와 보조 인덱스가 있다.
✅인덱스를 사용하는 이유
- select 문으로 검색하는 속도가 매우 빠름.
- 그 결과 컴퓨터의 부담이 줄어들면서 결국 전체 시스템의 성능이 향상됨.
✅클러스터형 인덱스 (Clustered Index)
- 기본키로 지정하면 자동 생성되며 테이블에 1개만 만들수있다. 기본 키로 지정한 열을 기준으로 자동으로 정렬된다 => 영어사전과 비슷한 개념임. A~Z
create table test1 (
col1 int primary key, -- 기본키로 지정
col2 int,
col3 int
);
show index from test1 -- 인덱스 정보 확인
- Key_name 부분을 보면 PRIMARY 라고 써져있는데 이것이 기본 키로 설정해서 자동으로 생성된 인덱스라는 의미. 이것이 바로 클러스텨형 인덱스이다.
- Non_unique는 인덱스의 값이 중복되어도 된다는뜻. 중복이 허용이 되냐는 뜻. 0은 false , true 1. 결론 -> 이 인덱스는 중복을 허용하지 않는다.
- 기본키를 지정하지 않는 클러스트형 인덱스 예제
create table member(
mem_id char(8),
mem_name varchar(10),
mem_number int,
addr char(2)
)
insert into member values('TWC', '트와이스',9,'서울');
insert into member values('BLK', '블랙핑크',4,'경남');
insert into member values('WMN', '여자친구',6,'경기');
insert into member values('OMY', '오마이걸',7,'서울');
- 결과는 데이터를 입력한 순서 그대로 나옴.
- 기본키를 지정한 클러스트형 인덱스 예제
alter table member
add constraint
primary key(mem_id);
select * from member;
- mem_id 열에 클러스터형 인덱스가 생성되어 mem_id 열을 기준으로 정렬되어있다. 알파벳 순으로 정렬이된다.
✅보조 인덱스 (Secondary Index)
- 보조 인덱스는 고유 키로 지정하면 자동 생성되며 여러 개를 만들수 있지만 자동 정렬되지는 않는다. => 일반 책의 제일 뒷부분 수록느낌.
- 보조 인덱스는 단순 보조 인덱스(Simple Secondary Index)와, 고유 보조 인덱스(Unique Secondary Index) 로 나뉜다. 단순 보조 인덱스는 중복을 허용한다는 의미고, 고유 보조인덱스는 그 반대로 중복을 허용하지 않는 인덱스이다.
create table test2(
col1 int primary key,
col2 int unique, -- 고유키로 지정
col3 int unique -- 고유키로 지정
);
show index from test2
- key_name에 col2,col3이라고 열 이름이 써져있다. key_name에 열 이름이 써 있는 것은 보조 인덱스이다.
- 고유키를 여러개 지정하듯이 , 보조 인덱스도 여러개 만들수 있다.
Leave a comment