공부해봅시당

[자습시간! DataBase] InnoDB와 MyISAM을 알아보자 본문

STUDY/DATABASE

[자습시간! DataBase] InnoDB와 MyISAM을 알아보자

tngus 2021. 7. 12. 09:30

InnoDB와 MyISAM

 

InnoDB와 MyISAM은 모두 MySQL의 스토리지 엔진이다.

 

스토리지 엔진이 중요한 이유는 locking 방식 때문이다.

 

locking 방식에 따라 스토리지 엔진이 달라질 수 있으므로 데이터베이스를 사용할 때 함께 고려해야 할 중요한 사안이라고 할 수 있다.

 

아래는 MyISAM과 InnoDB의 특징이다.

 

MyISAM

  • 한번에 대량의 Insert 작업을 할 때 유용함
  • 읽기 위주의 간단한 작업에서 빠른 속도를 보임 -> Read Only 기능이 많은 서비스일수록 유용함
  • 전문검색이 필요할 경우 유용함
  • 트랜잭션이나 복구 등이 필요 없는 경우에 적합함
  • Row-level Locking(행 수준의 잠금)이 지원되지 않음
    • Row-level Locking(행 수준의 잠금) : 한 테이블 내에서 하나의 행을 읽고 수정할 때, 다른 행들에 대한 액세스는 허용될 수 있는 잠금
  • 따라서 블로그 등 비교적 규모가 작업 웹에서 사용하는 것이 적합함

 

InnoDB

  • order by 등 정렬이 있는 경우에 적합함
  • 트랜잭션을 지원하므로 트랜잭션 관리가 필요할 때, 즉 복구가 필요한 경우가 생길 수 있을 때 유용함
  • 대용량의 데이터를 컨트롤할 때 필요함
  • Insert, Update, Delete 등이 빈번하게 발생하는 경우 유용함(Row-level locking 때문)
  • 은행 또는 크고 복잡한 웹에 적합함

 

한마디로 MyISAM은 SELECT가 많은 서비스에, InnoDB는 데이터의 변화가 많은 서비스에 적합하다고 할 수 있다.

 


참고자료

https://unordinarydays.tistory.com/159

 

InnoDB란 무엇인가? (MyISAM) 과의 비교

우선 InnoDB란 말은 Mysql에서만 쓰인다. 왜냐하면 InnoDB와 MyISAM은 Mysql에서 쓰이는 스토리지 엔진이기 때문이다. (이 이외에도 다양한 엔진을제공함) 가장 큰 차이점은 locking 방식의 차이이다. Innodb

unordinarydays.tistory.com

https://ko.wikipedia.org/wiki/MyISAM

 

MyISAM - 위키백과, 우리 모두의 백과사전

MyISAM은 MySQL 관계형 데이터베이스 관리시스템 5.5 버전 이전의 기본 스토리지 엔진이다. 이것은 옛 ISAM 코드를 기반으로 했지만, 더 많은 유용한 확장성 가지고 있었다. MyISAM의 가장 부족한 점은

ko.wikipedia.org

https://letitkang.tistory.com/155

 

[Mysql] InnoDB란

오늘은 InnoDB에 대해 알아보겠습니다. InnoDB는 MySQL의 데이터베이스 엔진입니다. MySQL의 모든 바이너리에 내장이 되어 있습니다. InnoDB는 트랜잭션을 지원합니다. 그렇기 때문에 트랜잭션

letitkang.tistory.com

https://java119.tistory.com/75

 

[MySQL || MariaDB] InnoDB 총 정리

InnoDB 개념 Transaction-safe 한 Storage Engine으로 2005년 Oracle이 Innobase를 인수한 후 Oracle의 일부가 되었으며, MySQL 5.5 이후 기본적으로 사용되고 있다. MyISAM 보다 많은 기능을 제공한다. (MVCC 지..

java119.tistory.com

https://cipleme.tistory.com/20

 

MySQL innoDB는 어떻게 생겼나요? [InnoDB Architecture]

[MySQL INNODB Architecture] 위의 이미지는 모든 구조를 다 기술한 것은 아니며, 중요한 부분을 발췌하여 표현하였습니다. innoDB는 크게 메모리 영역, CPU연산영역, 디스크 스토리지 영역으로 구분할 수

cipleme.tistory.com

https://needjarvis.tistory.com/45

 

[MySQL] MyISAM 와 InnoDB 비교

현재 하고 있는 프로젝트는 MySQL DB를 사용하고 있고, TA로 투입이 되면서 테이블을 설계 업무도 병행하게 되었다. (물론 다 하는건 아니었지만) 큰 그림을 그리는 작업을 하는 거라, 업무별 테이

needjarvis.tistory.com

https://rebeccajo.tistory.com/14

 

mysql 엔진 MyISAM과 InnoDB 차이

내 머리도 휘발성 메모리 ㅜㅜ 자꾸 잊어서, 다시 한 번 기억하며 기록해 보자!  MyISAM     VS     InnoDB Mysql의 스토리지 엔진으로 가장 많이 사용하는 MyISAM, InnoDB의 차이를 알아보자. 결론적

rebeccajo.tistory.com

https://velog.io/@gillog/DBInnoDB-VS-MyISAM

 

[DB]InnoDB VS MyISAM

MySQL의 스토리지 엔진으로 가장 많이 사용하는 엔진으로는 InnoDB와 MyISAM이 있다. InnoDB 엔진은 트랜잭션 처리가 필요하고 대용량의 데이터를 다루는 부분에서 효율적이고, MyISAM 엔진은 트랜잭션

velog.io

https://offbyone.tistory.com/225

 

MySQL locking - Table-Level Locking, Row-Level Locking, Optimistic Locking

웹 프로그래밍은 기본적으로 다중 사용자 환경입니다. 동일한 자원에 여러 사용자가 동시에 접근하는 상황이 발생할 수 있습니다. 쇼핑몰에서 물건을 구매하는 상황을 생각해 봅시다. 두 명의

offbyone.tistory.com