본문 바로가기
컴퓨터관련/MS-SQL

[MS-SQL]Index(인덱스)생성하기

by 빛과 어둠사이 2019. 4. 18.
728x90
반응형
SMALL

DB를 사용할 때 Index는 필수입니다.

여러 곳에서 인덱스를 꼭 사용합니다.

다만, 인덱스는 양날의 검입니다.

잘 사용하면 좋지만, 잘못 사용하면 오히려 실이 많은 그런 것입니다.


그럼 SQL Server에서 Index사용하는 방법에 대해서

정리해보겠습니다.



1. 인덱스란?

테이블의 데이터를 조회할 때,

빠르고 효과적으로 조회할 수 있도록 도와주는 데이터 구조입니다.

조회할 때는 더 빠르게 조회할 수 있으나,

Insert Update등의 작업을 할 때는 인덱스를 새로 구성해야 하다보니

성능이 저하될 수 있습니다.



2. Index(중복 허용)

인덱스는 중복을 허용하게 만들 수 있고,

중복이 허용되지 않도록 만들 수도 있습니다.

이번에는 중복이 허용되는 인덱스 생성하는 방법에 대해서 확인해보겠습니다.


우선 인덱스를 걸기 위한 임시테이블을 하나 만들겠습니다.

CREATE TABLE TEST (
MEMBER_NAME VARCHAR(10)
, MEMBER_TELNO VARCHAR(15)
)


위 테이블에 member_name 컬럼에 인덱스를 생성하도록 하겠습니다.

CREATE INDEX TEST_IDX1
ON TEST (MEMBER_NAME)

위처럼 생성을 하면 됩니다.

그러면 member_name 컬럼에 값이 중복된 걸로 들어가도 

문제없이 들어가집니다.



3. Index(중복 비허용)

2번에서 만들었던 테이블을 이용해서

이번에는 중복이 허용되지 않는 인덱스를 만들어 보도록 하겠습니다.

쿼리는 다음과 같습니다.

CREATE UNIQUE INDEX TEST_IDX2
ON TEST (MEMBER_NAME)

위처럼 작성을 하면 됩니다.

2번에서의 인덱스 생성하는 것과의 차이는

UNIQUE가 들어있고, 안들어있고 차이입니다.

들어가게 되면 중복을 허용하지 않는 것이고,

들어가면 중복을 허용하는 것입니다.


중복이 허용되지 않으면 그냥 PK 설정을 해 놓은 것과 비슷하다고 생각하시면 되십니다.



4. 참고사항

인덱스를 생성할 때 컬럼명 뒤에 정렬조건을 넣을 수 있습니다.

ASC, DESC 등을 넣을 수 있습니다.

그러면 해당 조건에 맞춰서 정렬이 되어서 인덱스가 생성이 됩니다.

그러니 자주 쓰는 조건에 맞춰서 사용해주시면 되십니다.



이상으로 MS-SQL에서 Index 생성하는 방법이였습니다~

728x90
반응형
LIST