데이터베이스

paduck·2023년 6월 11일
0

CS스터디

목록 보기
2/3

인덱스

  • 데이터 빨리 찾기

B-트리

  • 인덱스의 자료 구조
    • 루트 노드, 리프 노드, 브랜치 노드
  • 균형 트리 구조, 대수확장성
    • 깊이^4

인덱스 구현 방법

MySQL

클러스터형
  • 테이블 당
  • primary key 기본키
  • unique not null
세컨더리형
  • create index...
  • 여러 필드 값
  • 많은 쿼리 작업

MongoDB

클러스터형
  • 도큐먼트 생성
세컨더리형
  • 부가 설정

인덱스 최적화

비용

  • 두 번 탐색
    • 인덱스 리스트, 컬렉션
  • 이중 수정
    • 컬렉션, 인덱스
    • B-트리 구조 조정
    • 데이터 분산 조정

테스트

  • explain()

순서

  • 같음
    • ==, equal
  • 정렬
  • 다중 값
    • >, < 등
  • 카디널리티
    • 유니크한 값의 정도

JOIN(조인)

  • 테이블 묶어 하나의 결과물
    • NoSQL은 조인 지양

종류

내부 조인

  • 교집합

왼쪽 조인

  • 왼쪽 기준, 일치하는 부분
    • 없으면 null

오른쪽 조인

  • 오른쪽 기준, 일치하는 부분
    • 없으면 null

합집합 조인

  • 양쪽 모두
    • 없으면 null

원리

중첩 루프 조인

  • 중첩 for문
    for each row in t1 ... {
    	for each row in t2 ...{
      }
    }
  • 랜덤 접근 비용
  • 블록 중첩 루프 조인
    • 블록 단위

정렬 병합 조인

  • 필드 기준 정렬
    • 인덱스 X, 대용량 테이블, 비교 연산자

해시 조인

  • 해시 테이블 기반
    • 메모리에 온전히, 동등 조인
빌드 단계
  • 메모리해시 테이블 빌드
  • 조인 필드
프로브 단계
  • 레코드 읽기, 결과값 반환
  • join_buffer_size 메모리양 제어
    • 런타임 조정
profile
끈질기게 들러붙기

0개의 댓글