우선 InnoDB란 말은 Mysql에서만 쓰인다.
왜냐하면 InnoDB와 MyISAM은 Mysql에서 쓰이는 스토리지 엔진이기 때문이다. (이 이외에도 다양한 엔진을제공함)
가장 큰 차이점은 locking 방식의 차이이다. Innodb는 특정한 로우를 Rokcing 하는 반면, MyISAM은 Mysql의 테이블 그전체를 락킹한다.
또한 InnoDB는 트랜젝션을 제공하며 MyISAM은 제공하지않는다.
그러면 어느때 Innodb 를 사용하고 MyISAM을 사용해야할까?
1. MyISAM
- 한번의 대량의 isnert를 하는 배치작업.
- 읽기위주의 간단한 작업.
- 전문검색 필요.
- 트랜잭션 x 데이터복구 x
- 블로그등 비교적 작은 웹
2. InnoDB를 고려 해야하는 경우.
- order by등 정렬이 있는경우
- 트랜잭션 관리가 필요.
- 대용량의 데이터를 컨트롤.
- insert updater delete 등이 빈번하게 발생하는 경우(Row-Level locking 때문에)
- 복구가 필요할 경우
- 은행 또는 크고 복잡한 웹
출처: https://stackoverflow.com/questions/3818759/what-is-innodb-and-myisam-in-mysql