본문 바로가기

CS/Data Structure, DB3

DB Buffer buffer란 말그대로 양동이 역할을 하는 것이다.보통 DB를 물탱크에, buffer를 물양동이에 비교한다. DB 버퍼는 데이터베이스 시스템에서 캐시처럼 작동하여 데이터 접근 속도를 향상시키고, 디스크 I/O를 최소화하는 역할역할1. 시간 절약을 위해 한 번에 모아서 처리 (디스크 I/O 최소화)Disk output 거리가 멀기 때문에, Disk에서 정보를 가져와서 -> 출력, 가져와서 -> 출력하는 것보단Disk에서 필요한 정보를 buffer에다 저장해놓은 다음에 한번에 -> 출력 하는 것이 전체적인 시간으로 봤을 땐 이득(java의 bufferedReader)만약 buffer가 다 안 찼는데도 운반하고 싶다면 flush를 써서 남은 쪼가리도 옮겨주면 된다. 위의 예시로 예를 들자면, 물을 한 손에 .. 2024. 4. 27.
B-Tree와 DB index index: DB에서 데이터를 찾을 때 full scan 말고, index를 사용하여 빠르게 한번에 접근할 수 있다page: 디스크와 메모리에 데이터를 읽고 쓰는 최소 작업 단위= 한 번 읽을 때 page만큼을 읽어옴index와 B-Tree인덱스 자체가 B-Tree로 구성되어 있다.]루트 노드에서 찾을 인덱스 키가 어딨는지 page단위로 이동하며 찾는다.DB에서 BST대신 BTree를 쓰는 이유여러 키를 하나의 노드에 저장하기 때문에 노드 수가 적어 더 적은 디스크 I/O를 발생 시킨다디스크 I/O란, 한 지점에서 다른 지점으로 점프, 위치를 찾아가는 것DB 성능 개선 혹은 쿼리 튜닝은 디스크 I/O 자체를 줄이는 것이 핵심인 경우가 많다자기가 알아서 균형을 맞추기 때문에, 각 데이터 별로 접근 시간이 .. 2024. 4. 27.
Binary Tree, Binary Search Tree, B-Tree DB 공부하다 B-Tree와 Binary tree들이 헷갈려서 정리할 겸 쓰는 글 Binary Tree (이진 트리) : 자식이 최대 2개인 트리Complete Binary Tree (완전 이진 트리) : 앞에서부터 순서대로 채워지는 트리Full Binary Tree : 모든 depth가 다 채워진 트리Balanced Binary Tree : 모든 leaf node의 depth 차이가 1 이내Binary Search Tree (이진탐색 트리, BST) : 왼쪽엔 현재 노드보다 작은 거, 오른쪽은 큰거Heap (Binary Heap)Max Heap: 부모 노드의 키 값이 자식 노드의 키 값보다 항상 큼Min Heap: 반대Complete Binary Tree의 성질을 가짐추가: 맨 끝에(complete b.. 2024. 4. 27.