[MySQL] MySQL 아키텍처: 접속 클라이언트, MySQL 엔진, 스토리지 엔진, 운영 체제, 하드웨어

2023. 8. 14. 08:00· 언어+프레임워크/MySQL
목차
  1. 💋 인트로
  2. 💋 MySQL 엔진 아키텍처
  3. ✔ MySQL 접속 클라이언트
  4. ✔ MySQL 엔진
  5. ✔ MySQL 스토리지 엔진
  6. ✔ 운영 체제, 하드웨어
  7. 💋 참고자료
반응형

 

 

💋 인트로

MySQL 서버는 아래와 같이 구분할 수 있다.

  • MySQL 엔진
  • 스토리지 엔진

MySQL 서버에서 기본으로 제공하는 스토리지 엔진으로는 InnoDB, MyISAM 스토리지 엔진이 있다.

 

💋 MySQL 엔진 아키텍처

 

  • MySQL은 Oracle이 만든 DBMS 소프트웨어
  • 다른 DBMS와 비교했을 때 독특한 구조

 

이미지 출처: https://dev.mysql.com/doc/refman/8.0/en/pluggable-storage-overview.html

 

조금 더 분류해서 보자! 

이미지 출처: https://www.youtube.com/watch?v=vQFGBZemJLQ

 

✔ MySQL 접속 클라이언트

  • MySQL 서버의 클라이언트
  • Python, JDBC(Java) 등등 대부분 프로그램이 언어를 모두 지원
  • 모든 언어로 MySQL 서버에서 쿼리를 사용할 수 있도록 함. 
  • 쉘 스크립트를 통해서도 MySQL 쿼리를 사용할 수 있음.
  • MySQL 서버 = MySQL 엔진 + MySQL 스토리지 엔진 

 

✔ MySQL 엔진

  • Optimizer가 작성한 실행 계획에 따라 스토리지 엔진을 호출해 쿼리를 실행
  • 클라이언트 접속과 SQL 요청 처리
  • Query Parser, Query Optimizer 등으로 구성
  • 이중 핵심인 Query Optimizer는 요청된 SQL문을 최적화해 실행시키기 위해서 실행 계획을 세움.

 

✔ MySQL 스토리지 엔진

  • 데이터를 실제로 디스크 스토리지에 저장하거나, 디스크 스토리지에 저장된 데이터를 읽어오는 역할
  • MySQL 엔진은 딱 1개지만, 스토리지 엔진은 여러 개를 동시에 사용할 수 있음.
    • CREATE TABLE innodb_table (fd1 INT, fd2 INT) ENGINE=INNODB;
      • innodb_table은 InnoDB 스토리지 엔진을 사용하도록 정의
      • innodb_table에 CRUD 작업을 실행하면 InnoDB 스토리지 엔진이 처리 담당
  • 핸들러 API
    • MySQL 엔진이 스토리지를 호출할 때 사용하는 API
    • 이 API를 직접 구현하면, 커스텀한 스토리지 엔진을 추가할 수도 있음. 

 

✔ 운영 체제, 하드웨어

  • 실제 테이블 데이터와 로그 데이터를 파일로 저장
  • 파일 시스템과 하드웨어로 구분 

 

 

💋 참고자료

  • https://dev.mysql.com/doc/refman/8.0/en/pluggable-storage-overview.html
  • https://www.youtube.com/watch?v=vQFGBZemJLQ

 

 

반응형
저작자표시 비영리 변경금지 (새창열림)

'언어+프레임워크 > MySQL' 카테고리의 다른 글

[MySQL] MVCC와 언두 로그(Undo log)  (0) 2023.08.29
[MySQL] MySQL 엔진의 락 (Lock)  (0) 2023.08.15
[MySQL] 트랜잭션: 트랜잭션의 개념, 주의사항, 트랜잭션 VS 락 (Real MySQL 8.0)  (0) 2023.08.13
[MySQL] ON DELETE CASCADE: foreign key로 묶인 테이블의 레코드를 삭제할 때, 해당 레코드를 참조하는 다른 테이블의 레코드도 함께 자동으로 삭제하기  (0) 2023.05.08
[MySQL] No value supplied for the SQL parameter 'gameId': No value registered for key 'gameId’ 오류 해결  (0) 2023.04.28
  1. 💋 인트로
  2. 💋 MySQL 엔진 아키텍처
  3. ✔ MySQL 접속 클라이언트
  4. ✔ MySQL 엔진
  5. ✔ MySQL 스토리지 엔진
  6. ✔ 운영 체제, 하드웨어
  7. 💋 참고자료
'언어+프레임워크/MySQL' 카테고리의 다른 글
  • [MySQL] MVCC와 언두 로그(Undo log)
  • [MySQL] MySQL 엔진의 락 (Lock)
  • [MySQL] 트랜잭션: 트랜잭션의 개념, 주의사항, 트랜잭션 VS 락 (Real MySQL 8.0)
  • [MySQL] ON DELETE CASCADE: foreign key로 묶인 테이블의 레코드를 삭제할 때, 해당 레코드를 참조하는 다른 테이블의 레코드도 함께 자동으로 삭제하기
깃짱
깃짱
연새데학교 컴퓨터과학과 & 우아한테크코스 5기 백엔드 스타라이토 깃짱
반응형
깃짱
깃짱코딩
깃짱
전체
오늘
어제
  • 분류 전체보기 N
    • About. 깃짱
    • PROJECT
      • AIGOYA LABS
      • Stamp Crush
      • Sunny Braille
      • RAG 기반 희귀품종 무화과 챗봇
    • 우아한테크코스5기
    • 컴퓨터과학
      • 운영체제
      • 네트워크
      • 자료구조
      • 데이터베이스
      • 알고리즘
      • 오토마타언어
      • 데이터프라이버시
      • 컴퓨터그래픽스
      • ETC
    • AI N
      • 딥러닝
      • LLM N
      • VLA
    • 아키텍처+MSA N
    • WEB
      • HTTP
      • 애플리케이션
      • 테스트
    • 언어+프레임워크
      • JAVA
      • Spring
      • C, C++
      • HTML+CSS
      • NextJS
      • MySQL
      • PostgreSQL
      • Linux
    • DevOps
      • AWS
    • 산업공학
    • 회고+후기
      • TIL 2023
      • TIL 2024
      • Weekly Momentum 2024
    • Tools
      • Git
      • IntelliJ
    • ETC
      • 커뮤니케이션
      • 日本語

블로그 메뉴

  • 홈
  • 깃허브

인기 글

최근 글

태그

  • 상속과조합
  • 우아한테크코스
  • 람다와스트림
  • Java
  • 컴포지션
  • lamda
  • 우테코
  • 예외
  • 상속
  • OOP
  • 우아한테크코스5기
  • 레벨로그
  • TDD
  • Stream
  • 람다
  • 스트림
  • 우테코5기
  • Composition
  • 함수형프로그래밍
  • 조합
hELLO · Designed By 정상우.v4.2.0
깃짱
[MySQL] MySQL 아키텍처: 접속 클라이언트, MySQL 엔진, 스토리지 엔진, 운영 체제, 하드웨어
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.