우선 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

+ Recent posts