본문 바로가기
서버구축 (WEB,DB)

Clustered Index 와 Non-Clustered Index

by 날으는물고기 2009. 1. 30.

Clustered Index 와 Non-Clustered Index

Non-Clustered : 인덱스만 정렬해둔 상태를 의미한다.
인덱스에 있는 정보를 참조해서 실제 데이터를 찾아 가는 방식이므로, 데이터를 한개 읽을 때는 상관 없지만 여러개 데이터를 읽어야 되는 경우에는 적합치 않다.

적합한 사용 예) 캐릭터 테이블에서 Unique 한 값에 해당 하는 데이터 한개만 읽어오는 경우.

개념적으로 stl의 map과 비슷하다. (값과 별도로 키가 존재하므로)

Clustered : 정렬 기준에 맞춰, 실제 데이터를 정렬해둔 상태. 당연히 한개의 Clustered Index만 있을 수 있다.
쿼리에서 Clustered Index를 이용할 경우 여러개의 데이터를 한꺼번에 읽는다해도 Index를 거쳐 실제 데이터를 찾아가는 과정이 없기에 연속된 데이터를 읽기만 하면 되기 때문에 훨씬 빠르다.
다만, 데이터 추가 삭제(insert문 만이 아니라, update문 포함)에 드는 비용이 많다.

적합한 사용 예) 아이템 테이블에서 특정 유저의 아이템을 모두 읽어오는 경우.

개념적으로 stl의 set과 비슷하다. (값이 키를 의미하므로)
728x90

댓글