database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
Oracle
Informix
Sybase
ㆍMS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
MS-SQL Q&A 6747 게시물 읽기
No. 6747
일반적인 인덱스 구성법
작성자
조치만
작성일
2013-10-13 22:50ⓒ
2013-10-13 22:51ⓜ
조회수
7,115

 아래와 같은 쿼리 1, 2 가 있다면

 

1. ~~ where a = 1

 

2. ~~ where a= 1 and b=2

 

이럴때 보통 인덱스를 a와 b 를 각각 별도의 인덱스로 만드는게 정석인지,

 

아니면 a와 b를 같이 뭉쳐서 인덱스화 시키는게 정석인지 궁금하여 문의드립니다.

 

 

이 글에 대한 댓글이 총 1건 있습니다.

CREATE INDEX indexName ON table(

A, B

);

 

와 같이 하여 말씀하신 두 개의 경우 모두 처리가 가능하도록 하는 것이 보통입니다.

 

"보통" 위와 같은 경우에는 B컬럼에는 인덱스를 생성하지 않습니다.

B컬럼에 인덱스를 생성하는 것은 B가 매우 선택도가 좋거나 오라클에서 index merge 등이 사용될 수 있는 경우 등이 있겠으나... 여기서 설명드리기에는 너무 오바스러우니 패스합니다. 

 

A컬럼의 선택도(selectivity)가 매우 좋거나 B컬럼의 type이 크다면 

 

CREATE INDEX indexName ON table(

A

)

INCLUDE(

B

);

와 같이 하는 편이 더 나은 성능을 보일 수 있는 등 실제 데이터의 분포나 형태 등도 고려하여 결정하는 것이 바람직합니다.

 

우욱님이 2013-10-14 05:51에 작성한 댓글입니다.
이 댓글은 2013-10-14 06:24에 마지막으로 수정되었습니다. Edit
[Top]
No.
제목
작성자
작성일
조회
6750중간데이터찾기 [3]
김우성
2013-10-15
8016
6749MSsql 이용한 주식데이터분석 [1]
엄지수
2013-10-14
7252
6748SQL 접속 에러... 무엇이 문제인지 ㅠㅠ [1]
한만복
2013-10-14
8146
6747일반적인 인덱스 구성법 [1]
조치만
2013-10-13
7115
6746쿼리로그확인하기 [3]
전성진
2013-10-10
10175
6745SQL 2005 -> SQL 2008 [2]
박아무개
2013-10-10
7824
674464bit SQL Server 로 컨버트 [1]
박아무개
2013-10-10
7097
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2023 DSN, All rights reserved.
작업시간: 0.054초, 이곳 서비스는
	PostgreSQL v16.1로 자료를 관리합니다