트랜잭션 중에 전원이 꺼지면 InnoDB 및 MyISAM 테이블은 어떻게 되나요?

트랜잭션 중에 전원이 꺼지면 InnoDB 및 MyISAM 테이블은 어떻게 되나요?

두 개의 MySQL 테이블이 있습니다. 하나는 InnoDB이고 다른 하나는 MyISAM입니다. 두 테이블 모두에서 단일 트랜잭션으로 삽입 청크를 실행했는데 중간에 전원이 꺼지면 상태는 어떻게 되나요?

InnoDB 및 MyISAM 테이블에 새로 삽입된 데이터는 어떻게 되나요?

답변1

Innodb는 트랜잭션 데이터베이스로, 체크섬 검증을 사용하여 트랜잭션 로그 파일에 데이터베이스 변경 사항을 저장하고, 충돌이나 정전 후 다음에 다시 시작할 때 트랜잭션을 커밋하거나 롤백합니다.

MyISAM에는 실패한 트랜잭션 커밋을 롤백하는 트랜잭션 시스템이 없습니다. 따라서 데이터베이스 손상은 플레이키 성능을 갖춘 플레이키 서버에서 주요 문제가 됩니다.

데이터 무결성과 잠금 경합(innodb 행 잠금 대 myisam 테이블 잠금)을 피하는 것이 필수라면 Innodb를 선택하세요.

답변2

내 이해는 (확실하지 않음) 다음과 같습니다.

  • InnoDB는 트랜잭션을 완전히 롤백합니다.
  • MyISAM은 정전 시점까지 삽입된 모든 데이터를 유지합니다.

관련 정보