[F-lab 챌린지 77일차 TIL]

성수데브리·2023년 9월 11일
0

f-lab_java

목록 보기
65/73

리눅스 권한

-rwxr-xr-x 1 root root 32209823 Sep 11 06:00 heeverse-api.jar

salt

비번 + salt → hasing → hash값

  • table, collision 공격을 비효율적으로 만드는게 목표

Papper

salt 를 다른 DB에 저장하는 것

MySQL 10장

  • 히스토그램 : 인덱스되지 않은 컬럼들에 대해서도 데이터 분포도를 수집해서 저장하는 히스토그램 정보 / 정보는 칼럼 단뒤로 관리된다.
  • 비용 기반 최적화에서 가장 중요한 것은 통계 정보
  • 영구 통계 정보 도입 / 자동 갱신 방지

히스토그램

  1. 싱글톤 히스토그램 : 칼럴값 개별로 레코드 건수를 관리하는 히스토그램. value-based 히스토그램 또는 도수 분포
  2. equi-height (높이 균형 히스토그램) : 칼럼값의 범위를 균등한 개수로 구분해서 관리하는 히스토그램, height-balanced 히스토그램

히스토그램 용도

  • 이전에는 전체 데이터 레코드수와 인덱스 컬럽이 가지는 유니크한 값의 개수 정도만 참고했음
  • 그러나 분포도는 다르기 때문에 히스토그램이 도입된것

실행 계획 수립때 보는 데이터

  1. 사용 가능한 인덱스들로부터 조건절에 일치하는 레코드 건수를 대략 파악하고 최종적으로 가장 나은 실행 계획을 선택한다. → B-Tree를 샘플링해서 살펴본다. (=인덱스 다이브)

  2. MySQL 8은 인덱스된 컬럼을 검색 조건으로 사용하면 히스토그램을 참조하지 않고 인덱스 다이브를 참고한다. 실제 데이터를 샘플링하는것이기 때문에 히스토그램보다 정확한 결과 기대 가능하기 때문

  3. 히스토그램은 인덱스되지 않은 컬럼에 대한 데이터 분포도를 참조하는 용도로 사용된다.

코스트 모델

쿼리 처리위해 하는 작업들

  1. 디스크에서 페이지 읽기
  2. 버퍼풀에서 페이지 읽기
  3. 인덱스 키 비교
  4. 레코드 평가
  5. 메모리 임시 테이블 작업
  6. 디스크 임시 테이블 작업
  • 코스트 모델이란 전체 쿼리 비용을 계산하는 데 필요한 단위 작업들의 비용을 코스트 모델이라고 한다.

    • server_cost : 인덱스를 찾고 레코드를 비교해서 임시 테이블 처리에 대한 비용 관리
    • engine_cost : 레코드를 가진 데이터 페이지들 가져오는 데 필요한 비용 관리
  • 옵티마이저가 비용 계산때 보는 내용

    • B-Tree 깊이
    • 인덱스 키 검색을 위해 읽어야 하는 페이지의 개수
    • 디스크와 메모리에서 페이지를 각각 몇 개씩 읽어야 하는지
    • 정렬 작업에서 알고리즘별로 키 값 비교 작업이 몇 번 필요한지 등

파티션 프루닝

파티션이 여러 개인 테이블에서 불필요한 파티션을 빼고 쿼리를 수행하기 위해 접근해야 할 것으로 판단되는 테이블만 골라내는 과정

0개의 댓글