인프런 커뮤니티 질문&답변

302302님의 프로필 이미지
302302

작성한 질문수

[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part5: 데이터베이스

북마크 룩업

메모리와 커버드 인덱스 사용 질문입니다.

작성

·

168

0

1. 메모리

찾으려는 데이터가 메모리에 올라와 있다는 보장이 없다고 하셨는데 그렇다면 반대로 Clustered Index 는 항상 올라와 있는건가요?
아니면 불러와야 하지만 불러올 부분을 정확히 알기 때문에 비효율적인 부분없이 처리한다는 의미인가요?

2. 설명을 들어보면 INDEX 설정할 때 WITH 를 거는게 DML 작업에 부하가 적다고 하셨는데 주로 커버드 인덱스를 활용하시는 이유를 알 수 있을까요?

답변 1

0

Rookiss님의 프로필 이미지
Rookiss
지식공유자

Clustered는 LeafPage 자체에 데이터가 있으므로
추가적으로 탐색할 필요가 없습니다.

Non-Clustered는 LeafPage에서 찾은 키값을 들고
다시 데이터를 찾으러 가야 합니다. (북마크 룩업)
LeafPage에서 추가적인 데이터를 남기고
그 추가 데이터로 인해 불필요한 탐색을 줄일 수 있는데
이럴 때 Covered Index가 유용합니다.

ShipVia를 따로 안 남긴 상태에서 ShipVia = 3인 애들을 찾으려면,
LeafPage의 키값을 얻은 다음 굳이 북마크 룩업을 통해
데이터를 찾으러 가고, 데이터를 조회해본 다음에서야 ShipVia를 비교할 수 있겠죠.

302302님의 프로필 이미지
302302

작성한 질문수

질문하기