DB3 [MySQL] MySQL 아키텍처 MySQL 아키텍처 구성 MySQL 접속 클라이언트 역할 대부분의 프로그래밍 언어에 대한 접속 클라이언트 제공 Shell을 통해서도 접속 가능함 MySQL Engine (MySQL의 두뇌) 구성 옵티마이저 요청된 SQL 문을 최적화해서 실행시키기 위해, 실행 계획을 짜는 역할을 함. 쿼리 파서 전처리기 실행 엔진 역할 클라이언트 접속과 SQL 요청을 처리함. MySQL 스토리지 엔진 (MySQL의 손발) 역할 데이터를 실제로 디스크에 저장하거나 디스크에 저장된 데이터를 불러오는 역할 옵티마이저가 작성한 실행 계획에 따라서 스토리지 엔진을 적절히 호출해서 쿼리를 실행 MySQL 엔진이 스토리지를 호출할 때, 사용하는 API를 핸들러 API라고 함 직접 구현하여 추가 가능 운영체제 파일시스템, 하드웨어 쿼리.. DB/MySQL 2024. 1. 30. [MySQL] MVCC(Multi Version Concurrency Control)란 학습해야 하는 이유 MVCC를 이해해야 트랜잭션 격리 수준에 따른 MySQL 내부 동작 원리에 대해서 알 수 있기 때문입니다. MVCC를 이해하기 위해선, Undo Log에 대해 알아야 합니다. 또 Undo Log와 헷갈릴 수 있는 Redo Log에 대해서도 알아봅시다. Redo Log와 Undo Log는 MySQL 스토리지 엔진 내에 존재하는 데이터 영역입니다. Redo Log 정의 DDL 또는 DML 문장에 의해 데이터베이스에 저장된 값 또는 테이더베이스 구조에 변경사항이 생기는 경우 변경 정보를 보관하는 메모리 영역입니다. Redo Log가 필요한 이유 기본적으로 DB에서 데이터 변경 작업은 부하가 큰 작업입니다. 많은 경우 변경 대상인 데이터가 순차적으로 위치하지 않고 디스크에 랜덤하게 존재하기 .. DB/MySQL 2023. 10. 28. [DB] 트랜잭션이란 무엇인가? 서론 오늘은 트랜잭션에 대해서 알아보도록 하겠습니다. 본론 트랜잭션이란? 데이터베이스(이하 DB)에서 더 이상 나눌 수 없는 최소의 실행 단위를 말합니다. 또 DB는 하나의 트랜잭션을 수행할 때 온전히 그 명령이 실행되는 것 보장하며, 실행 도중 오류가 발생하면 해당 쿼리를 실행하기 이전 상태로 되돌림으로써 데이터의 일관성을 보장합니다. 트랜잭션의 실행과정 DB에서는 명령이 끝날 때까지 수행 내역을 로그에 보관합니다. DB에서 반영된 내용을 재반영하기 위한 Redo Log와 수행에 실패해 이전의 상태로 되돌리는 Undo Log를 이용해, 트랜잭션이 수행될 수 있도록 합니다. 트랜잭션의 성질 원자성 (Atomicity) 트랜잭션은 DB 작업의 논리적인 작업 단위로, 트랜잭션은 DB에 모두 반영되거나 아니면.. DB/MySQL 2022. 6. 23. 이전 1 다음 반응형