[10분 테코톡] 줄리의 MySQL 스토리지 엔진
- 스토리지 엔진은 데이터베이스 관리 시스템(DBMS) 내부에서 데이터의 읽기/쓰기 작업을 담당하는 핵심 컴포넌트다. 💾
- 스토리지 엔진은 데이터의 저장 방식, 인덱싱 구성, 읽기/쓰기 작업 등을 관리하며, MySQL에 쿼리를 요청하면 스토리지 엔진이 실제 작업을 수행한다. ⚙️
- 다양한 스토리지 엔진이 존재하는 이유는 데이터 처리 방식의 다양성 때문이며, 각 엔진은 특정 작업에 최적화된 성능을 제공한다. 🗄️
- B-tree는 정렬된 데이터를 페이지별로 저장하여 구간 검색에 효율적이며, 대용량 읽기 작업에 유용하지만 쓰기 성능은 저하될 수 있다. 🌲
- LSM tree는 로그처럼 데이터를 순차적으로 추가하여 대용량 쓰기 작업에 적합하지만, 읽기 작업 시 여러 자료 구조를 탐색해야 하므로 성능이 저하될 수 있다. 🪵
- MySQL은 다양한 스토리지 엔진을 지원하며, InnoDB와 MyISAM이 대표적이다. 🐬
- MyISAM은 외래키와 트랜잭션을 지원하지 않아 ACID 속성을 보장하기 어렵고, 테이블 단위 락으로 동시성 처리가 어렵다. 🔒
- InnoDB는 외래키와 트랜잭션을 지원하여 ACID 속성을 보장하고, Row-level 락을 사용하여 동시성 처리 성능이 우수하다. ✅