항목 A, B, C,D가 표와 같은 형태로 정렬되어 보여지는 테이블을 설계중인데요
PK는 따로 존재하고 아래 표는 가장 많은(자주) 질의를 하는 항목과 값의 형태입니다.
A = varchar(1) |
B = varchar(1) |
C = bigint(8) |
D = smallint(4) |
1
0 |
0
1 |
100
99
98
: |
1
2
3
: |
이때 검색 방법은
... order by
A DESC
B ASC
C DESC
D ASC
위 와 같습니다. 이때 인텍스를
case1 |
CREATE NONCLUSTERED INDEX idx1 ON tb1 (A, B, C, D) |
case2 |
CREATE CLUSTERED INDEX idx1 ON tb1 (A, B, C, D) 단, PK는 NONCLUSTERED로 처리(자주 질의 않함으로) |
case3 |
CREATE INDEX idx1 ON tb1 (A)
CREATE INDEX idx2 ON tb1 (B)
CREATE INDEX idx3 ON tb1 (C)
CREATE INDEX idx4 ON tb1 (D) |
[질문1] case1,2,3과 같이 형성한다고 했을 때 속도라는 측면에서 어떤 case가 가장 좋은 방법인지요? 또 각 case들의 특징은 무엇인지 알고 싶습니다. 더나가 위 case 이외에 더 좋은 방법이 있으면 가르쳐 주세요.
[질문2]
위질의에 하나더 추가 하여
where e = "사과" order by
A DESC
B ASC
C DESC
D ASC
라고 검색하였을 때 (단, E의 값은 "사과", "바나나", "단감",... 등의 분류임)
E는 어떻 형태로 인텍스를 만들어야 하나요?
[질문3]
인텍스 생성시 CLUSTERED 를 사용하면 속도가 많이 느려지나요?
게시판 등록 같은 테이터 량이 많은 테이블에서 CLUSTERED 사용하는건 부적격한가요?
또 한수 배우려하니 많은 가르침 부탁드립니다.
감사합니다. |