본문 바로가기

DB

[책정리] 함수기반 인덱스

새로 쓴, 대용량 데이터베이스 솔루션 vol.1을 공부하며 여기에 정리해본다.


함수기반 인덱스

-      일반 사용자 정의 함수의 결과를 인덱스로 사용하는 것인데 함수 결과가 실제 인덱스 컬럼으로 저장되어 사용된다.

-      갱신이 필요한 경우: 갱신을 불허할 지(Disabled), 갱신할 지(Rebuild), 기존 데이터는 그대로 두고 신규 데이터에만 적용할 지 선택할 수 있다.

함수기반 인덱스의 활용: 체계적이지 않은, 잘 관리되지 않은 시스템에서 활용도가 높다.

-      조인 연결고리 컬럼이 대응하지 않는 경우 : A테이블은 대중소분류 코드 사용, B테이블은 분류가 결합된 코드를 사용하는 경우 상대적으로 작은 테이블의 인덱스를 상대 테이블의 코드 형태로 정의하여 생성

-      일자 컬럼이 분할된 경우 이를 연결한 인덱스를 정의하여 해결

-      데이터 타입이 상이한 조인 컬럼

-      조인 컬럼이 경우에 따라 달라지는 경우: 특정 코드값이 1일 때 AAA 컬럼과 비교, 2일 때 BBB 컬럼과 비교

-      다른 테이블을 참조한 결과값을 인덱스로 생성하여 체크 기능의 역할만 하는 where 조건 컬럼을 처리 주관 조건 역할을 할 수 있도록 함

-      오류 데이터의 검색 문제를 해결

-      대소문자/공백이 혼재된 컬럼을 검색, null을 치환하여 검색, 접두사를 채워서 검색 등

-      가공처리 결과의 검색: 복잡한 계산 결과를 인덱스로 생성(주로 랭크가 필요한 경우), 기간/컬럼 길이 검색