본문 바로가기

Today I Learned

240102 / 데이터 분석 부트캠프 10일차 (내일배움캠프 Data_1기)

♣ 2주차 목표 : 프로그래밍 기초 SQL 학습

  • SQL 코드 카타 51-62번 풀이 복습
  • 'SQLD 자격증 대비반' 14주차 강의 수강
  • 'SQLD 자격증 대비반' 강의 복습
  • SQL 특강

연휴동안 'SQLD 자격증 대비반' 12-13강을 듣고 남은 14강을 수강 후 다시 처음부터 강의를 복습하는 시간을 가졌다.

 

옵티마이저

  • DBMS의 두뇌
  • 어떤 방식으로 SQL 쿼리를 처리하고 데이터를 검색할지 결정하는데 도움을 주는 도구
  • 규칙기반 옵티마이저
    • 개념 : 사전에 정의된 규칙 기반
    • 기준 : 실행우선 순위(Ranking)
    • 인덱스 : 인덱스 존재 시 가장 우선시 사용
    • 장점 : 판단이 매우 규칙적 > 실행 예상 가능
    • 단점 : 예측 통계정보 요소 무시
    • 성능 : 사용자 SQL 작성 숙련도
  • 비용기반 옵티마이저
    • 개념 : 최소비용 계산 실행계획 수립
    • 기준 : 엑세스 비용(Cost)
    • 인덱스 : Cost에 의한 결정
    • 장점 : 통계 정보를 통한 현실 요소 적용
    • 단점 : 최소 성능 보장 계획의 예측 제어 어려움
    • 성능 : 옵티마이저 예측 성능

인덱스

  • 원하는 데이터를 쉽게 찾을 수 있도록 도움
  • 기본적인 목적은 검색 성능의 최적화

트리 기반 인덱스 (B-Tree)

  • 가장 상위에 있는 루트(Root) 블록
  • 분기를 목적으로 하는 브랜치(Branch) 블록
  • 가장 마지막 위치에서 인덱스를 구성하는 칼럼 데이터와 해당 데이터를 가진 리프(Leaf) 블록

전체 테이블 스캔

  • 데이터를 읽을 때 한번의 요청으로 여러 블록을 한꺼번에 읽어옴
  • 대용량 데이터를 스캔할 때는 비효율적

인덱스 스캔

  • 대용량 데이터에서 일부 데이터를 찾아야 할 때 인덱스를 이용하여 몇 번의 요청으로 원하는 데이터 읽어옴
  • 대용량 데이터 스캔할 때 가장 적합
  • DB의 일정 부분 데이터를 저장해야 하기 때문에 일정 부분 용량 차지
  • 인덱스 생성 시간이 소요되기 때문에 DB가 자주 변경되는 경우 성능 저하