본문 바로가기
DataBase

MySQL InnoDB의 특징(1)

by whitele 2024. 8. 26.
반응형

MySQL의 대표적인 DB는 InnoDB와 MyISAM이 있습니다. MySQL 5.5 이후 등장하였으며 스토리지 엔진입니다. 전형적인 메모리 기반의 엔진 MyISAM과 HDD를 기반으로 했지만 현재는 거의 메모리 기능에서 MyISAM을 능가하는 InnoDB가 있습니다. 현재는 InnoDB가 주류로 쓰인다.

InnoDB의 전체적인 구조는 위와 같습니다.

대표적인 InnoDB 특징을 알아보고자 합니다

InnoDB의 특징

PK에 의한 클러스터링

오라클 DB와 유사하게 pk의 순서대로 저장됩니다. 다른 칼럼의 경우 레코드의 주소가 아닌 Primary Key의 값을 주소로 사용합니다. 이 때문에 Range스캔은 빨리 처리됩니다.

외래키 지원

외래키가 지정된 키의 경우 부모 테이블, 자식 테이블에 데이터가 있는지 확인을 하고 락을 겁니다. 하지만 너무 많은 요청을 처리할 경우 잠금이 전파되어 데드락이 발생할 수 있습니다.

관련 기능으로 foreign_key_checks 설정이 있으며 이를 비활성화하면 CASCADE 옵션이 진행되지 않습니다.

MVCC

여러 사용자에 의한 동시 데이터 일관성을 지키기 위해 사용하는 기능입니다. MultiVersion Concurrency Control의 약자로 하나의 레코드가 여러 개의 버전으로 관리됩니다. 다중 버전 동시성 제어라고 합니다. 하나의 레코드를 업데이트했을 때 실제로 메모리에는 업데이트되었어도 디스크에는 작업이 되지 않았을 수 있습니다.

undo 테이블에 유지되며 롤백 세그먼트 자료구조를 가집니다.

Ref.

Real MySQL 8.0 - 백은빈 저

https://dev.mysql.com/doc/refman/8.4/en/innodb-multi-versioning.html

728x90
반응형

댓글