'데이터베이스'에 해당되는 글 2건

  1. 2008.06.11 결합 컬럼 인덱스
  2. 2008.06.04 리팩토링 데이터베이스

결합 컬럼 인덱스

개발/DB 2008. 6. 11. 22:00

결합 인덱스 구성 원칙

0순위 - WHERE조건에 사용하는 컬럼
1순위 - 컬럼이 사용한 연산자에 의한 인덱스 컬럼 선정
2순위 - 랜덤 액세스를 고려한 인덱스 컬럼 선정
3순위 - 정렬 제거를 위한 인덱스 컬럼 선정
4순위 - 단일 컬럼의 분포도를 고려한 인덱스 컬럼 선정

결합 인덱스 구성예

1. 카드번호의 분포도는 매우 좋고 거래일자 컬럼의 분포도는 매우 안 좋다.

1) 카드번호가 점조건인 경우
분포도 : 카드번호의 값이 WHERE 조건을 만족하는 데이터가 매우 적다.

SELECT 카드번호, 사용액 FROM 거래내역 WHERE 카드번호='111'
AND 거래일자 BETWEEN '20080501' AND '20080510';

이 경우는 카드번호 + 거래일자로 인덱스를 생성하면 카드번호 컬럼에 의해 처리범위 감소하고
거래일자에 의해서도 처리범위가 감소하므로 최소의 액세스가 보장된다.

2) 카드번호가 선분조건인 경우
SELECT 카드번호, 사용액 FROM 거래내역 WHERE 카드번호 BETWEEN '111' AND '555'
AND 거래일자='20080515';

이 경우는 카드번호+거래일자 인덱스를 생성하면 카드번호 컬럼에 의해서만 처리 범위가
감소하므로 성능 저하가 발생한다.

이유) '111'카드번호부터 '555'카드번호까지 2008년 5월 15일 데이터만 엑세스하는것이
아니라 '111'카드번호부터 '555'카드번호까지 모든 데이터를 액세스하기 때문이다.

따라서 아래와 같이 해야 한다.

1. 점 조건 + 점 조건 - 두 조건에 의해 처리 범위 감소
2. 점 조건 + 선분 조건 - 두 조건에 의해 처리 범위 감소
3. 선분 조건 + 선분 조건 - 앞의 선분 조건에 의해 처리 범위 감소
4. 선분 조건 + 점 조건 - 앞의 선분 조건에 의해서만 처리 범위 감소

*. 점조건(=, IN) 선분조건 (=, IN을 제외한 연산자)

출처 : 마이크로 소프트웨어 6월호

'개발 > DB' 카테고리의 다른 글

아카이브 로그 모드 설정  (0) 2009.11.26
백업및 복구를 위한 기본개념  (0) 2009.11.25
아카이브 로그 모드와 노 아카이브 로그 모드  (0) 2009.11.24
mysql 페이징  (0) 2009.03.02
mysql  (0) 2009.01.21
Posted by 무혹
,

제목 : 리팩토링 데이터베이스
출판사 : 위키북스
저자 : 스캇 W. 앰블러, 프라모드 J. 세달라지
역자 : 정원혁, 이재범, 권태돈, 성대중, 현중균
대충 목차 : 1. 진화적 데이터베이스 개발
                2. 데이터베이스 리팩토리
                3. 데이터베이스 리팩토링 프로세스
                4. 프로덕션으로 배포하기
                5. 데이터베이스 리팩토링 전략
                6. 구조적 리팩토링
                7. 데이터 품질 리팩토링
                8. 참조무결성 리팩토링
                9. 아키텍처적 리팩토링
                10. 메서드 리팩토링
                11. 변환
읽은 후 : 읽기 전에는 데이터베이스를 리팩토링하는 간단하고 멋진 방법이
             있을거라 생각했다. 마틴 파울러의 추천사때문에 그랬을지도...
             하지만 읽은 후에는 뻔하다는 느낌.
            오라클과 자바를 기반으로 하여 데이터베이스를 컬럼수정, 조건절 분해, 통합,
            기타등등을 예제까지 포함하여 늘어놓았다.
            친절하기는 했지만 웬만한 개발자는 다 아는 이야기이다.
            작은 단위의 변경, 촘촘한 테스트를 가지고 버그없이 하자는 이야기가
            주제인데 애자일 프로세스에 관심이 조금이라도 있슴 별 재미가 없다.
            내가 너무 큰 기대를 했나?

추천대상 : 돈이 남으면, 남들에게 있어보이기 위해서, 이런 부류(리팩토링, 애자일)의
               책을 한번도 접하지 않았다면,

            


Posted by 무혹
,