InnoDB 란?

현이·2022년 9월 27일
0

면접

목록 보기
2/2

우리가 사용하는 데이터베이스는 엔진을 사용한다.

스토리지엔진, 데이터베이스엔진이라고 부르며,

엔진 특성에 따라 데이터 접근이 얼마나 빠른지, 얼마나 안정적인지, 트랜잭션 기능의 제공여부등이 달라진다.

우리가 흔히 사용하는 mysql, mariadb 는 주로 MyISAM, InnoDB 두가지의 스토리지 엔진을 사용한다.

데이터베이스는 데이터를 영속적으로 저장하고 있는 시스템입니다.

영속성이란, 데이터를 생성한 프로그램의 실행이 종료되더라도 사라지지 않는 데이터의 특성을 말합니다.

MyISAM 과 InnoDB의 핵심 차이점 2가지

  1. Innodb는 특정한 로우를 Lokcing 하는 반면, MyISAM은 Mysql의 테이블 그전체를 락킹한다.
  2. InnoDB는 트랜젝션을 제공하며 MyISAM은 제공하지않는다.

트랜잭션이란?

데이터베이스의 상태를 변화시키기 위해 수행하는 작업의 단위를 말합니다.

데이터베이스의 상태를 변화시킨다 -> sql을 날려 데이터베이스에게 접근하는것

Lock이란?

lock이란 트랜잭션 처리의 순차성을 보장하기 위한 방법입니다.

수강신청을 할때 정원이 1명 남았는데 2사람이 거의 동시에 버튼을 누르게되면 성공은 1명만 되어야합니다.

이와같은 상황에서 DBMS가 사용하는 공통적인 방법이 Lock입니다.

즉, InnoDB와 MyISAM은 Lock의 설정범위의 차이가 있는 것입니다.

  • Table level(MyISAM) : ddl lock
  • Row level(InnoDB) : dml lock

대용량의 데이터를 컨트롤하기 위해서는 트랜잭션이 필요합니다.

대규모 서비스에서는 하나의 작업단위가 복잡한 구조로 이루어져 있기 때문에

여러개의 sql문장을 하나의 트랜잭션으로 묶어야 관리하기 수월합니다.

profile
의미있는 고찰

0개의 댓글