요르딩딩
INDEX (인덱스) 본문
728x90
반응형
[인덱스]
- 인덱스 특징
- 인덱스는 where절에서 효과가 있다.
- 인덱스가 걸려있는 컬럼을 where에 조건으로 넣을 경우에 효과를 볼 수 있다.
- 인덱스 설정 기준
- 카디널리티가 높을수록 좋다 : 고유한 값 위주로 (중복이 적을 수록)
- 선택도가 낮으면 좋다 : 하나의 값으로 적은 row가 조회된다. (일반적으로 5~10%가 적당)
- 조회 활용도가 높을 수록 좋다 : 조회에 자주 사용되는 컬럼
- 수정빈도가 낮을수록 좋다 : 인덱스 테이블도 갱신되기 때문에 낮을수록 좋다.
- DML에 미치는 영향도
- update, delete는 where절에 인덱스로 조건을 붙여주면, 크게 성능저하가 일어나지 않다, 조회시 빠른것이지 update, delete가 빠르다는게 아니다.
- insert의 경우, 기존 인덱스 페이지에 저장되어 있던 탐색 위치가 수정되어야 하므로 효율이 떨어짐니다.
- 그 밖의 index 명시사항
- where, order by, join절에 자주 사용되는 컬럼 사용하기
- LIKE와 사용할 경우 %가 뒤에 오도록 사용 (%가 앞에 사용되면 Full Scan)
- Multi colum index
- 컬럼이 모두 인덱스에 있는경우, 물리적인 데이터블록을 읽을 필요없이, 인덱스 테이블만 읽으면 된다.
- 고려사항 : where에 AND 연산자로 자주 같이 질의되는 컬럼들인 경우 설정한다.
- 인덱스 설정의 특징
- 조회 속도 향상
- 인덱스 테이블을 위한 시간,공간 필요
- update, delete, insert에 따라 성능 하락 발생
- Clustered index
- 테이블당 1개만 생성가능 (일반적으로 PK 컬럼으로 자동 생성됨.)
- 기본키의 경우 자동으로 clustered index로 설정된다.
- 물리적으로 테이터를 정리한다. 그러므로 1개만 생성 가능
- Non clustered index
- 테이블당 여러개 생성가능
- 조회시 물리적으로 정렬되어 있지 않기에 인덱스로 찾아가야한다.
- 인덱스는 where절에서 효과가 있다.
728x90
반응형
'[Web] > [DB & Mybatis]' 카테고리의 다른 글
SQL강의 - 8 (중복정보 수정, 정규형, 참조무결성) (0) | 2022.06.16 |
---|---|
SQL강의 - 7 (스키마 정의, 자료형, 제약조건) (0) | 2022.06.16 |
SQL강의 - 6 (서브쿼리, 집합연산) (0) | 2022.06.14 |
SQL강의 - 5 (LIKE 검색, NULL값, GROUP BY/HAVING) (0) | 2022.06.14 |
SQL강의 - 4 (SELECT INTO, INSERT INTO SELECT) (0) | 2022.06.13 |
Comments