Yomni's TIL Help

MySQL Architecture

1 architecture

MySQL 엔진

  • 커넥션 핸들러 : 접속 및 쿼리 요청 처리

  • SQL 파서 : 문법 검사, 문장을 파싱해서 엔진이 실행 가능한 형태로 변환

  • 전처리기 :

    • 쿼리 참여하는 컬럼, 함수, 테이블 존재 여부 확인

    • 실행자의 권한 확인

  • 옵티마이저 : 실행 계획 생성

    • 테이블의 데이터 분포

    • 시스템 자원 사용량

    • SQL 문장의 구조 등을 조합하여 실행 계획을 생성한다.

스토리지 엔진

  • 데이터를 저장하고 관리한다

  • 데이터를 효율적으로 읽고 쓴다

    • 버퍼 풀 등을 활용

  • 트랜잭션을 관리

  • 데이터 무결성을 보장한다

느낀점

  • SRP 관점에서 생각해보면, 레이어드 아키텍처 만큼 잘 따르고 있는 아키텍처가 또 없는 것 같다.

    • 각 계층은 그 계층이 맡은 역할과 책임만 다하면 된다.(다른 레이어는 신경쓰지 않아도 된다)

    • SRP : 각 모듈(레이어)는 하나의 책임만을 가져야 한다. 변경해야 한다면, 그 이유는 단 하나뿐이다.

Last modified: 08 October 2024