728x90
반응형
Index 란?
- 데이터를 검색할 때, 모든 데이터를 순차 검색하기에는 시간이 너무 오래 걸림.
- 그렇기에 메모리를 사용해 검색 속도를 빠르게 하기 위한 기법이다.
- B+tree 알고리즘을 사용하며, Hash 알고리즘을 안쓰는 이유는 '<', '>' 비교가 안되기 때문이다.
클러스터드 인덱스
- 순서대로 행을 재배열
- PK 를 설정하면 자동으로 클러스터드 인덱스로 설정이 됨.
- 예를 들면, ID, 거래일 이 PK 이면, 2020-01-01, 2019-12-31 순으로 데이터를 넣으면 물리적으로 날짜를 정렬한 후 저장이 돼있음.
- 2019-12-31, 2020-01-01 순으로.
- 1개만 만들 수 있음.
- PK 에 따라 데이터 저장 위치가 결정되니 조회시에는 빠르겠지만, 수정, 삭제, 삽입은 느리겠지. PK 에 따라 다 계산해야하니.
넌 클러스터드 인덱스
- 클러스터드 인덱스는 물리적으로 재배열해서 정렬한다면, 넌 클러스터드 인덱스는 재배열하지 않음.
- 단, 별도의 인덱스를 만든다. 이 인덱스 들은 각각 데이터가 어디있는지 가리킴.
- 예를 들면, 주소라는 인덱스가 있다면, 주소라는 인덱스를 만들고. 이 인덱스는 주소 값을 가지고 있음.
- 하나의 테이블에 여러개 인덱스를 만들 수 있음.
- 삽입과 수정 삭제가 빠름. (데이터 재배열이 일어나지 않으니). 조회는 느림. 인덱스를 찾고 물리 주소를 찾아가야하는데. 이 물리주소가 정렬이 안되있으니.
reference
'database' 카테고리의 다른 글
transaction isolation level 설명 (0) | 2021.02.27 |
---|---|
spring boot + jpa 환경에서 h2 접속할려는데 file 위치를 못찾는 현상 (0) | 2020.12.21 |
Sql 과 nosql 차이점 그리고 언제 써야하는지 (0) | 2020.11.14 |
트랜잭션의 성질 (ACID) 설명 (0) | 2020.10.22 |
정규화 비정규화 중 인덱스가 더 효과적인 것은? (0) | 2020.08.19 |
댓글