Real MySQL 책을 읽으며 활용하기 위해 간략히 정리한 내용입니다.
더 자세한 내용을 알고 싶다면 책 또는 구글 검색을 통해 찾아주시면 감사하겠습니다.
아키텍처 MySQL 서버는 머리 역할 담당하는 MySQL 엔진과 손발 역할을 하는 스토리지 엔진으로 구성되어 있다.
스토리지 엔진은 핸들러 API를 만족시 스토리지 엔진을 구현하여 MySQL 서버에 추가해 사용 가능하다.
MySQL 엔진 구조 MySQL 엔진 클라이언트로부터 접속 or 쿼리 요청을 처리하는 커넥션 핸들러와 SQL 파서 및 전처리기 캐시 옵티마이저가 중심이며 표준 SQL 문법을 지원 사람의 역할 (mysql 엔진이 스토리지 엔진을 조정하기 위해 핸들러를 사용) 요약: MySQL 엔진은 요청에 따른 SQL 문장을 분석 및 최적화 담당하는 두뇌 역할 스토리지 엔진 스토리지 엔진을 여러개 동시에 사용 가능하며 실제 데이터를 디스크 스토리지에 저장, 조회등을 담당 실제 CRUD 작업이 발생시 처리 담당 자동차 역할 (mysql 엔진에 의해 조정) MyISAM 스토리지 엔진, InnoDB 스토리지 엔진 InnoDB 높은 신뢰성, 고성능으로 범용 스토리지 엔진 많은 기능을 제공해 상대적 무거움 테이블과 인덱스를 테이블 공간에 저장 Row level locking 지원으로 데이터 변경이 많을 때 효율적 (행 단위 잠금) Row level locking row 수준의 잠금 → 하나의 데이터를 읽고, 수정시 다른 행에 대한 접근 허용 여부 잠금 Shared Lock select를 위한 read lock read lock의 경우 다른 트랜잭션이 row 접근시 read lock 보장, write lock 접근 불가 Exclusive Lock update, delete를 위한 write lock 해당 lock이 동작하면 다른 트랜잭이 row에 조회, 수정등의 lock을 획득하지 못하고 대기 MyISAM 5....