작성
·
259
답변 1
1
Primary key는 Clustering Index와 연관이 있습니다.
clustering index: 특정 column을 기본키(primary key)로 지정하면 자동으로 클러스터형 인덱스가 생성되고, 해당 column 기준으로 정렬이 됩니다. Table 자체가 정렬된 하나의 index인 것입니다. 마치 영어사전처럼 책의 내용 자체가 정렬된 것을 떠올리면 쉽습니다.
B+Tree를 설명드릴 때
이렇게 데이터가 저장된다고 설명드렸습니다. 보조 인덱스를 생성하면 이런 자료구조를 새로 만들어서 빠르게 찾도록 도와줍니다. 클러스터링 인덱스의 경우에는 primary key로 설정하면 DB 데이터 자체가 하나의 B+Tree가 되는 것이라고 생각하시면 됩니다. 위의 설명처럼 데이터 자체가 정렬된 영어사전을 떠올리시면 좋아요
영어사전은 알파벳 순서(primary key)로 정렬이 되어있죠. 데이터가 저장될 때부터 primary key를 기준으로 정렬된 상태로 되어 있습니다. 그런데, 여기서 단어의 사용 횟수라는 column을 또 하나의 primary key로 사용한다고 해보겠습니다. 그러면 어떤것을 기준으로 영어사전의 순서를 정할 수 있을까요? 이런식으로 primary key가 두 개 이상으로 지정되면 저장하는 것 자체에서 부터 문제가 생길 수 있습니다.