-
Notifications
You must be signed in to change notification settings - Fork 0
조희승 8주차 학습 일지
huiseung edited this page Aug 19, 2024
·
1 revision
-
degree가 정해진 균형 트리
-
디스크 IO 횟수를 줄이기 위해 개발
- 높은 팬아웃(각 노드가 많은 키를 저장)
-
인메모리 저장 디비라면?
- 해시테이블, 트라이, 스킵리스트
-
https://www.cs.usfca.edu/~galles/visualization/BPlusTree.html
-
leaf 노드가 링크드 리스트가 되어 next Page 검색이 빠르기에 range query에 좋다
-
인덱스의 키값으로 데이터가 정렬되어 있는 상태
-
non clustered index
- 인덱스의 키값으로 데이터가 무작위로 저장되어 있는 상태
- 리프 값으로 Clustered index key를 갔고 잇다
- 정렬시켜서 갖고 있는거 대비 효율성
-
mysql 노드 크기 16KB
-
섹터
- 물리적 데이터 관리 단위
-
블록
- 연속된 섹터
- 디스크와 관련
-
페이지
- 논리적 데이터 관리 단위
- 메모리와 관련
- 16KB
- 4B int를 저장한다면 4000개 저장 가능
- 높이 1개인 트리면 4000개 페이지 관리
- 높이 2개 트리면 4000^2 개 페이지 관리
- 높이 3개 트리면 4000^3 개 페이지 관리
-
unique > 제일 사이즈 작은것 > pk
-
데이터베이스 생성시 폴더를 만든다
-
테이블 생성시 ibd 파일을 만든다
- 클러스터드 인덱스
- 세컨더리 인덱스
- 실제 데이터 페이지
-
슬롯
- 페이지 안 레코드 시작 위치 오프셋 배열
- 논 클러스터 인덱스는 값으로 RID(페이지 번호, 슬롯 번호)를 갖는다
- 레코드는 varchar 같은 가변길이가 있기에, 레코드도 가변길이다
-
슬롯이 점차 증가, 레코드가 점차 증가, 서로 맞다을 떄 까지 만단다
-
delete 시 실제로 지우지 않고 지워졌다만 표시한다
-
배큠 & 컴팩션
- 지워졌다 표시되어 있는걸 실제로 지운다
-
update
- inplace
- 레코드 길이 변경이 없는 값 변경
- ouput place
- 레코드 길이 변경, 뒷부분 레코드들 중 페이지를 넘어가면 다른 페이지로 옮긴다
- inplace
-
redbase
- 스탠포드 교육용 RDB
- 엘라스틱서치 유의어 임베딩 벡터 쓰는 법