https://heekim0719.tistory.com/410
MySQL 구조
- 서버 엔진 : 클라이언트가 query 요청 시 쿼리 파싱과 스토리지 엔진 데이터를 용청하는 작업 수행
- 스토리지 엔진 : 물리적 저장장치에서 데이터를 읽어온다. 데이터를 직접 다루기 때문에 엔진 종류마다 동작 원리가 다르다. (8가지)
MYSQL 스토리지 엔진 종류 및 특징
데이터베이스(스키마)를
파일 시스템 / 데이터 디렉터리 / 하위 디렉터리로 저장
테이블 생성 시 mysql은 테이블 이름과 같은 이름을 가진 .frm 파일을 만들고 그 안에 테이블 정의 정보를 저장합니다
mytable이라는 테이블을 만들 경우 mysqldms mytable.frm에 테이블 정의를 저장합니다
mysql은 데이터베이스 이름과 테이블 정의를 저장하는 데 파일 시스템 사용
대소문자 구분은 플랫폼에 따라 결정이 된다
mysql 인스턴스에서 테이블고
Storage Engine 비교
InnoDB
- default 스토리지 엔진이다.
- transaction-safe하고, 커밋과 롤백, 데이터 복구 기능을 제공한다.
- row-level locking을 제공 (외에도 다양한 종류의 lock이 있긴하다)
동시 처리에 효과적이나, deadlock이 발생할 수 있다. (참고 영상 : https://www.youtube.com/watch?v=FXzBRD3CPlQ&t=263s )
clustered index에 저장하여 Primary Key 기반의 query의 I/O 비용을 줄인다.
외래키를 허용해 무결성을 보장.
단순 select 기능에서는 MyISAM에 비해 안좋은 성능을 보인다.
MyISAM
Archive