공부를 하고 있는 책들에 대하여 정리를 할 예정이다.
오랫동안의 방황을 거쳐 다시 제 정신을 찾은 거 같다. 하나님께 너무 감사하고 , 이렇게 비루한 나를 사랑해주는 여자친구에게도 너무 감사하다.
공부를 열심히 시작하려고 한 만큼, 정리를 해두는 것이 좋을 거 같다. 그래서 이 시리즈를 시작하게 되었다.
첫 책은 위의 제목을 가지고 있는 책이다. 내용은 thebook.io라는 사이트를 통해서 공개되었다.
인덱스
인덱스 생성
CREATE[UNIQUE] INDEX [스키마명.]인덱스명
ON [스키마명.]테이블명(컬럼1, 컬럼2, ...);
확인
입력
SELECT index_name, index_type, table_name, uniqueness
FROM user_indexes
WHERE table_name = 'EX2_10';
결과
INDEX_NAME INDEX_TYPE TABLE_NAME UNIQUENESS
----------- ---------- ---------- ----------
EX2_10_IX01 NORMAL EX2_10 UNIQUE
기본적으로 PK 로 지정해주면,. PK를 기준으로 인덱스를 생성해준다.
따로 인덱스를 생성해줄 필요가 없다.
입력
SELECT index_name, index_type, table_name, uniqueness
FROM user_indexes
WHERE table_name = 'JOB_HISTORY';
결과
INDEX_NAME INDEX_TYPE TABLE_NAME UNIQUENESS
-------------- ---------- ----------- ----------
PK_JOB_HISTORY NORMAL JOB_HISTORY UNIQUE
결합인덱스
한개 이상의 컬럼으로 인덱스를 만든 것을 결합 인덱스라고 한다.
입력
CREATE INDEX ex2_10_ix02
ON ex2_10 (col11, col2);
결과
index EX2_10_IX02이(가) 생성되었습니다.
입력
SELECT index_name, index_type, table_name, uniqueness
FROM user_indexes
WHERE table_name = 'EX2_10';
결과
INDEX_NAME INDEX_TYPE TABLE_NAME UNIQUENESS
------------ ----------- ---------- -----------
EX2_10_IX02 NORMAL EX2_10 NONUNIQUE
EX2_10_IX01 NORMAL EX2_10 UNIQUE
인덱스를 생성할 때 고려해야 할 사항
❶ 일반적으로 테이블 전체 로우 수의 15%이하의 데이터를 조회할 때 인덱스를 생성한다
물론 15%는 정해진 것은 아니며 테이블 건수, 데이터 분포 정도에 따라 달라진다.
❷ 테이블 건수가 적다면(코드성 테이블) 굳이 인덱스를 만들 필요가 없다
데이터 추출을 위해 테이블이나 인덱스를 탐색하는 것을 스캔(scan)이라고 하는데, 테이블 건수가 적으면 인덱스를 경유하기보다 테이블 전체를 스캔하는 것이 빠르다.
❸ 데이터의 유일성 정도가 좋거나 범위가 넓은 값을 가진 컬럼을 인덱스로 만드는 것이 좋다
❹ NULL이 많이 포함된 컬럼은 인덱스 컬럼으로 만들기 적당치 않다
❺ 결합 인덱스를 만들 때는, 컬럼의 순서가 중요하다
보통, 자주 사용되는 컬럼을 순서상 앞에 두는 것이 좋다.
❻ 테이블에 만들 수 있는 인덱스 수의 제한은 없으나, 너무 많이 만들면 오히려 성능 부하가 발생한다
인덱스의 성능문제 해결 5원칙
❶ 어떤 컬럼을 인덱스로 만들 것인지, 인덱스는 몇 개나 만들 것인지(최대 5개를 넘어가지 않도록 한다) 결정한다.
❷ 효율적인 SQL문을 제대로 작성한다.
❸ 효율적인 SQL문을 제대로 작성한다.
❹ 효율적인 SQL문을 제대로 작성한다.
❺ 효율적인 SQL문을 제대로 작성한다.
'나만의 작은 공간 > Books' 카테고리의 다른 글
[Java 8 Labmda] 스트림 (0) | 2017.04.21 |
---|---|
[Java 8 Lambda] Chapter 2 Lambda Expression (0) | 2017.04.20 |
세계문학전집 어떻게 살 것인가? (0) | 2017.04.19 |
수학의 눈을 찾아라 (0) | 2016.10.10 |