본문 바로가기
공부/면접잘보세요

mysql 스토리지 엔진 MyISAM vs InnoDB

by 띵커베르 2023. 2. 22.
728x90
  • 트랜잭션 지원 여부
    • MyISAM은 트랜잭션을 지원하지 않습니다.
    • InnoDB는 트랜잭션을 지원하며, ACID(원자성, 일관성, 고립성, 지속성)를 보장합니다.
  • 락(LOCK) 방식
    • MyISAM은 전체 테이블 락 방식을 사용합니다. 따라서 동시에 여러 개의 쓰기 작업이 일어날 경우 성능이 저하될 수 있습니다.
    • InnoDB는 행 락 방식을 사용합니다. 따라서 여러 개의 쓰기 작업이 동시에 일어날 경우 성능이 향상될 수 있습니다.
  • 외래키(Foreign Key) 지원 여부
    • MyISAM은 외래키(Foreign Key)를 지원하지 않습니다.
    • InnoDB는 외래키(Foreign Key)를 지원합니다.
  • 데이터 일관성
    • MyISAM은 데이터 일관성을 보장하지 않습니다. 따라서 데이터의 무결성이 중요한 경우에는 사용하지 않는 것이 좋습니다.
    • InnoDB는 데이터 일관성을 보장합니다. 데이터의 무결성이 중요한 경우에는 InnoDB를 사용하는 것이 좋습니다.
  • 인덱스
    • MyISAM은 전문 검색(Full-text search) 인덱스를 지원합니다.
    • InnoDB는 전문 검색(Full-text search) 인덱스를 지원하지 않습니다.
  • 성능
    • MyISAM은 대용량 데이터를 처리할 때 빠른 속도를 보장합니다. 하지만 다중 쓰기 작업에서는 성능이 저하될 수 있습니다.
    • InnoDB는 다중 쓰기 작업에서도 안정적인 성능을 보장합니다. 하지만 대용량 데이터 처리에서는 MyISAM보다 성능이 떨어질 수 있습니다.
      • MyISAM은 데이터를 저장할 때 테이블 단위로 파일로 저장하기에, 이러한 구조로 인해 쓰기 작업은 빠르며, 대용량 데이터 처리에서 좋은 성능을 보인다.
      • 그러나 다중 쓰기 작업세너는 테이블 단위로 락을 걸기 때문에 다른 쓰기 작업을 대기시켜야 하는 경우가 많아져 성능 저하가 발생할 수 있다.
      • InnoDB는 데이터를 저장할때 행 단위로 파일을 저장하며, 이러한 구조로 다중 쓰기 작업에서 안정적인 성능을 나타낸다.
728x90

댓글