인덱스의 저장 방식에 대해서 질문이 있습니다!
538
4 asked
안녕하세요 루키스님.
항상 좋은 강의 감사드립니다!!!
인덱스 및 복합 인덱스 강의를 들으면서
생긴 궁금증 하나를 여쭤보려 합니다!
※ 해당 질문은 Clustered Index 기준입니다.
개요.
인덱스 강의 때 Clustered Index는 물리적인 데이터의 저장 순서의 기준이라고 하셨습니다. 따라서 사전처럼 데이터가 키에 따라 정렬된 상태로 저장되는 것으로 이해했습니다.
그런데 복합 인덱스 강의를 들으면서 인덱스가
트리 구조의 페이지로 나뉘고 써칭을 할 때 페이지 트리 탐색 후 찾은 인덱스(키)의 RID를 읽어서 본격 실제 물리적인 데이터를 찾는다고 말씀하셨습니다.
의문.
"데이터가 애초에 정렬된 상태로 저장되면 트리 탐색 혹은 이분 탐색으로 끝날 텐데 왜 굳이 RID를 읽고 한 번 더 써칭을 하는 것일까?"
그래서 제가 아래와 유추와 결과를 냈는데
혹시 맞을까요? (Clustered Index 기준)
유추.
"데이터가 물리적으로 정렬된 것은 맞을 것 같은데..
그렇다면 내가 생각한 데이터의 기준이 다를까?
인덱스는 일종의 Key이므로
데이터는 Key와 Value의 조합이겠군?
그렇다면 강의에 말씀하신 데이터는 엄밀히 말하면 Key 데이터와 Value 데이터로 나눌 수 있겠군?"
결론.
인덱스(Key)는 실제 디스크에 정렬된 상태로 저장되지만 그 인덱스(Key)에 대응되는 실제 데이터(Value)는 실제 디스크에 정렬된 상태로 저장되지 않고 대신에 리니어 하게 만 저장된다. 그렇기 때문에 정렬되지 않은 실제 Value를 찾기 위해서 RID를 읽는 것.
(Value 마저 정렬된다면.. 그것 나름대로 또 끔찍하겠군요... 중간에 추가 삽입될 때마다 방대한 데이터가 한 칸씩 뒤로 밀리기 때문에요.)
그래서 인덱스(Key)는 트리 탐색을 하고
인덱스(Key)에 대응되는 Value를 찾기 위해서 RID를 읽고 찾아갑니다.
+
그 다음 강의인 Clusterd vs Non-Clustered를
시청 후 해결됐습니다.
위에서 제가 언급한 결론은
Non-Clustered Index의 경우네요.
그러면 Clustered Index의 경우 Key가 정렬되어 저장된 곳에 바로 Value가 저장되는군요. 그래서 실제 데이터 자체가 디스크에 정렬된 상태로 저장된다고 볼 수 있겠네요.
Non-Clustered에 비해서 검색 속도는 빠르겠지만 대신에 Trade Off로 데이터의 추가 삽입/삭제가 느리겠군요. 왜냐하면 Value 까지 포함한 큰 데이터들이 전부 정렬된 상태를 항상 보장 받아야 하기 때문에요.
Answer 1
최신 하드웨어에서 SQL Express 설치에러 해결법
0
59
1
인벤토리 테이플 데이터가 엄청 많아지면
0
97
2
DISTINCT의 행 개수와 COUNT(DISTICNT )의 결과가 왜 차이나는지 궁금합니다.
0
101
1
conect시 신뢰할 수 없는 기관에서 인증서 발급 오류 뜨시는분들
0
319
1
PRIMARY KEY와 CLUSTERED INDEX의 차이
0
330
1
락과 트랜잭션 격리수준 차이는 뭔가여?
0
534
1
외래 키 질문이 있습니다.
0
385
1
게임 프로젝트와 연동하는 강의 내용은 포함되어 있지 않는 건가요?
0
565
1
윈도우 함수는 SELECT에서만 사용가능한가요?
0
452
1
데이터 베이스가 만들어지지 않을 때
9
799
3
sql 강의 관련 질문
0
679
1
강의내용 외의 질문이 있습니다
0
582
1
sinter
0
360
1
테이블 여러개랑 조인
0
372
1
서버 컴퓨터 스펙에 따라서 성능 차이가 심한가요?
0
798
1
Non-Clustered 에서 clustered index 추가시
0
438
1
UNIQUE INDEX와 PRIMARY KEY의 기능적차이
0
583
1
Part5: 데이터베이스_ SSMS 입문 테이블작성 오류에관하여
2
903
2
MSSQL vs AWS
0
364
1
join 관련 질문입니다.
0
287
2
Inner Join 질문
0
305
1
데이터베이스 원리는 CAP이론을 비유하여 설명하신 건지 궁금합니다.
1
401
0
CLUSTERED INDEX
1
303
1
집계함수 설명 중 집합의 의미가...
0
286
1

