|
(광고) 단통법 시대의 인터넷가입 가이드(ver2.0) (234) |
백메가 |
2015-12 |
1781657 |
25 |
2015-12
1781657
1 백메가
|
|
[필독] 처음 오시는 분을 위한 안내 (737) |
정은준1 |
2014-05 |
5256704 |
0 |
2014-05
5256704
1 정은준1
|
89252 |
인텔 리콜 거부 사태 (14) |
뚜뚜김대원 |
2024-10 |
1631 |
0 |
2024-10
1631
1 뚜뚜김대원
|
89251 |
듀얼랜을 구성시 장점은 어떤게 있나요? (4) |
예관신규식 |
2012-05 |
9840 |
0 |
2012-05
9840
1 예관신규식
|
89250 |
esxi 문의 (2) |
겜머 |
2015-09 |
3915 |
0 |
2015-09
3915
1 겜머
|
89249 |
광케이블.. 지금 용산 가면 구매할 수 있을까요?? (11) |
블루영상 |
2023-02 |
1770 |
0 |
2023-02
1770
1 블루영상
|
89248 |
Q-Fit 915GM 가지고 계신분 계시나요 ? RH80536 1600/2M 활용 가능 보드가 있을까요 (1) |
6툴 |
2012-05 |
5333 |
0 |
2012-05
5333
1 6툴
|
89247 |
Cisco Linksys E3000 전원 문의드립니다. (사진첨부) (5) |
정승환 |
2012-05 |
4994 |
0 |
2012-05
4994
1 정승환
|
89246 |
해외향 직구폰 유플러스 호환 문의 (10) |
돌풍감자 |
2021-06 |
4901 |
0 |
2021-06
4901
1 돌풍감자
|
89245 |
sunny 스위칭 아답터 파는데 있을가요? 사진(유) (5) |
신관악산 |
2019-01 |
3384 |
0 |
2019-01
3384
1 신관악산
|
89244 |
물건을 팔았는데 찜찜한데 어떻게 처리해야 할지 모르겠네요, (10) |
하양까망 |
2024-10 |
1262 |
0 |
2024-10
1262
1 하양까망
|
89243 |
Micro Gen8 HDD IDE?모드에서 AHCI모드로 변환할수 있을까요? (5) |
송진현 |
2014-05 |
4300 |
0 |
2014-05
4300
1 송진현
|
89242 |
SATA 케이블 길이가 2m여도 문제가 없나요? (9) |
봉래 |
2020-02 |
4546 |
0 |
2020-02
4546
1 봉래
|
89241 |
ni-cd밧데리방전... (12) |
Won낙연 |
2017-10 |
5888 |
0 |
2017-10
5888
1 Won낙연
|
89240 |
HP Z620 오류 도움 부탁드립니다. (8) |
설영수 |
2014-05 |
6052 |
0 |
2014-05
6052
1 설영수
|
89239 |
파워에서 탄내가 납니다 (4) |
슬러그 |
2016-09 |
4748 |
0 |
2016-09
4748
1 슬러그
|
89238 |
HP ML110 G7 아이비브릿지 (4) |
파리대왕 |
2014-05 |
4666 |
0 |
2014-05
4666
1 파리대왕
|
89237 |
HP Smart Array P800 Controller 밧데리문의 (7) |
comduck |
2015-09 |
6755 |
0 |
2015-09
6755
1 comduck
|
89236 |
Win11 안전모드 진입후 정상부팅 방법 (3) |
무쏘뿔처럼 |
2021-06 |
3182 |
0 |
2021-06
3182
1 무쏘뿔처럼
|
89235 |
해외에서 직구로 TV주문해보신분 계신가요?? (9) |
대한민국 |
2014-05 |
6017 |
0 |
2014-05
6017
1 대한민국
|
89234 |
랜선 확인 (13) |
Doker |
2017-10 |
5455 |
0 |
2017-10
5455
1 Doker
|
89233 |
해놀로지에 붙는 PCI 랜카드가 무엇무엇이 있나요? (4) |
김강호 |
2016-09 |
4578 |
0 |
2016-09
4578
1 김강호
|
3개다 컬럼이 아닐 것 같은데..
3개다 컬럼이면 인덱스 만들 의미가 없습니다.
현재 또는 특정일자와 start_date, end_date 비교를 하면
일반적으로 이력데이터가 쌓이는 테이블로
미래 데이터가 적고, 범위 검색 후순위에 오는 index 컬럼은 사용되지 않기 때문에
end_date 컬럼만으로 인덱스를 구성합니다.
전 DBA 는 아니라서...인덱스 설정 관련해서는 다음분께............
1번 테이블에 Index를 생성하기 위해서는
TABLE1.DATE1 >= '20190823' 처럼
row가 제한되는 조건이 있어야 합니다.
또는
2번테이블 선행테이블이 되는 NL 조인에서 index를 사용하게 됩니다.
위 예시된 조건절만 있다고 가정했을때
Index없이 사용하는 것이 좋을 것으로 추측 됩니다.
(일반적으로 다른조건없이 위와같은 조건절로 사용할 업무는 존재하지 않습니다. Join은 부모자식관계가 있어야 발생합니다.)
응시기간에 맞게 신청한 것인지 WHERE 로 체크하려 한다고 그냥 예시로서 생각해 보면 될것 같습니다.
이 경우에도 답변주신 설명이 맞는것인가요?
Table1에는 시험과목, 응시자, 응시일자
table2에는 시험과목, 응시기간
이렇게 구성되어야 맞기 때문에 조건절에 1.시험과목=2.시험과목
처럼 조건이 추가 되어야 합니다.
전체 데이터를 응시기간에 맞게 신청한 것인지 체크한다면
전체 데이터를 체크하는 거라서 index를 태울 필요가 없습니다.
index를 만들어도 타지 않고 실행 될 것입니다.
시험과목이 아주 많이 관리 된다면( 2번 테이블이 선행테이블이 되어 NL조인으로 실행할 경우)
table1에 시험과목,응시일자로 복합 인덱스 구성을 고려해 볼 수 있겠네요.
그런데 응시기간안에 응시하지 않은 데이터가 존재할 가능성은 매우 낮기 때문에
복합인덱스의 효용은 없습니다.
table1에 시험과목 index와 응시자 index 각각 구성하는 경우만 있을 것으로 보입니다.
varchar 날짜 비교를 한다고 보면 되고요.
(1) 시작일, 종료일을 하나의 인덱스로 잡는게 나은지
(2) 따로 시작일과 종료일 각각 인덱스를 만드는게 나은것인지 이게 제가 궁금한 부분입니다.
* 그래서 INDEX 설계가 어렵습니다.
위 예에서는 INDEX를 잡을 필요가 전혀 없는 경우.
시작일, 종료일이 포함된 테이블이 자식 테이블(주로 이력 관리 테이블)일 경우
부모테이블이 TABLE1.DATE1 은 INDEX를 만들 필요가 없으며( 검색조건이 있을 경우는 생성고려)
TABLE2는 일반적으로 종료일만 인덱스에 포함됩니다.
(데이터가 계속 쌓이기 때문에 시작일은 검색조건에 항상 만족하는 경우가 많아 INDEX 구실을 못합니다.)
인덱스를 타게 쿼리하는 방법도 있습니다.
SELECT *
FROM T1, T2
WHERE T1.과목 = T2.과목
AND T1.응시일 < T2.시작일
UNION ALL
SELECT *
FROM T1, T2
WHERE T1.과목 = T2.과목
AND T1.응시일 > T2.종료일
위와 같이 응시일이 응시기간에 벗어난 데이터( 즉 가능성이 낮은 데이터)
만 뽑을 경우는 구성한 INDEX를 탈 가능성이 높습니다.
그런데 이런 업무는 1회성 또는 수행 횟수가 많지 않은 경우라 INDEX를 구성하는 것을 권장하지 않습니다.