2023/01/07 2

Chapter 09.02 기본 데이터 처리

9.2 기본 데이터 처리 모든 RDBMS는 데이터 가공 결과물이 동일하나 처리 과정은 벤더별로 차이가 있다. 기본적인 데이터 가공을 위해서 MySQL 서버가 어떤 알고리즘을 사용하는지 알아본다. 9.2.1 풀 테이블 스캔과 풀 인덱스 스캔 Def) 풀 테이블 스캔 인덱스를 이용하지 않고 테이블의 데이터를 처음부터 끝까지 읽어서 요청된 작업을 처리하는 작업이다. 상당히 많은 디스크 읽기가 필요하다. 대부분의 DBMS는 한꺼번에 여러 개의 블록이나 페이지를 읽어오는 기능을 내장한다. 그러나 MySQL은 한꺼번에 몇 개씩 페이지를 읽어올지 설정하는 시스템 변수는 없다. 풀 테이블 스캔을 실행할 때 MyISAM 스토리지 엔진: 디스크로부터 페이지를 하나씩 읽어온다. InnoDB 스토리지 엔진: 특정 테이블의 연..

Chapter 09.01 옵티마이저(Optimizer)와 힌트

9.1 개요 실행 계획을 이해해야 실행 계획의 불합리한 부분을 찾아내고 더 최적화된 방법으로 실행 계획을 수립하도록 유도 가능하다. Def) 옵티마이저(Optimizer): MySQL은 쿼리를 최적으로 실행하기 위해 데이터가 어떤 분포로 저장돼있는지 통계 정보를 참조한다. 기본 데이터를 비교해서 최적의 실행 계획을 수립하는 작업을 말한다. MySQL 서버를 포함한 대부분의 DBMS에서 이러한 기능을 담당한다. 명령어 EXPLAIN으로 쿼리 실행 계획을 확인할 수 있다. 9.1.1 쿼리 실행 절차 SQL 파싱(parsing): 사용자로부터 요청된 SQL 문장을 잘게 쪼개서 MySQL 서버가 이해할 수 있는 수준으로 분리 (파스 트리)한다. SQL 파서라는 모듈로 처리한다. SQL 문법 검사 SQL 파스 트..