리타의 저장소

인덱스와 조인 #1 본문

Dev/Database

인덱스와 조인 #1

ريتا 2025. 10. 11. 22:07
덱스 참 잘생김

 

덱스는 알아도 인덱스는 잘 몰르는디,,
처음 운영 데이터를 만지면서 가장 중요한 것 중 하나는 바로 '인덱스' 였다.
 
 
종종 정산데이터를 업로드 한다거나,
대량데이터를 업데이트 해줘야 하는 일들이 발생하곤 했는데,
그럴 때마다 내가 짠 쿼리는 참 오래 걸렸다.
차장님한테 여쭤보니, 인덱스는 만들었냐고 물으셨다.
그렇구나 인덱스가 필요하구나 !


인덱스

  • KEY + VALUE

인덱스의 탐색

  • 수직적 탐색 시작점 검색 Random Access
  • ROOT : 최상위 노드 BRANCH : ROOT & LEAF 의 연결고리 LEAF : KEY + Rowid (블록주소) > leaf node는 정렬되어 있음
  • Root > Branch > Leaf
  • 수평적 스캔Sequential Access
  • Leaf Block의 시작점 ~ 종료점 까지
  • 테이블 Random Access
  • 데이터 블록을 읽는 케이스
  • 결과가 10% 미만인 경우, 10% 이상인 경우 어떻게 읽는게 좋은가 ?10%이상 == Full Scan
  • (그렇다고 항상 그런것은 아님, 일반적으로 그렇다)
  • 10%미만 == Index Scan

Random Access vs Sequential Access

sequentialrandom

하나의 블록에서 순차적으로 리딩주로 하나의 블록에서 하나의 레코드만 읽음
알차게 빼 먹는다효율이 낮음 / 높은 비용
index leaf block 읽을 때 / full scan 할 때Rowid 이용 테이블 액세스
적은 비용DBA 를 이용한 인덱스 수직적 탐색
Full scan 일 경우 Multi - Block I/O 가능클러스터링팩터(C.F)가 낮을 때 높은 성능
 Single Block I/O ( 1번블 => 1번블 해야함)
$$ 비용 ?

Table Radom Access > 수직적 탐색 > 수평적 탐색

 

'Dev > Database' 카테고리의 다른 글

오라클 DBMS 구조  (0) 2025.10.11
인덱스와 조인 #2  (0) 2025.10.11
HOT update  (0) 2025.10.11
Oracle vs PostgreSQL  (0) 2025.10.11
DB | ORACLE 무료 버전 설치 1  (0) 2025.10.11