- 예를들어 게임유저의 id를 데이터베이스에서 검색할때 어떻게 해야할까?
- 모든 유저의 데이터를 순차적으로 돌아야하나?
-
index(색인)라는것을 만들어 검색의 속도를 높인다.
- index는 두 가지 종류가 있다.
- clustered index : 대부분의 primary key, 테이블당 1개만 존재하며 빠르고 좋음
- 사전에서 알파벳순서대로 정렬이 되어있는 개념이라 생각하면 된다.
- db는 clustered index를 기준으로 데이터를 정렬해 둔다
- non-clustered index : clustered index를 제외한 나머지 index, 별 다른 제한 없음
- clustered index : 대부분의 primary key, 테이블당 1개만 존재하며 빠르고 좋음
정리하자면
- index : 데이터를 빨리 찾을 수 있게 보조해주는 고마운 친구
- primary key(clustered index) : 물리적인 데이터 저장순서를 정리(사전을 정리한 개념)
- 일반 index(non-clustered index) : 따로 관리하는 일종의 lookup 테이블(책에서 나오는 색인)
CREATE INDEX i1 ON accounts(accountName)
CREATE UNIQUE INDEX i2 ON accounts(accountName)
DROP INDEX accounts.i1