(MySQL) 트랜잭션의 이해

*트랜잭션은 꼭 여러개의 변경 작업을 수행하는 쿼리가 조합됐을 때만 의미 있는 개념은아니다. 트랜잭션은 하나의 논리적인 작업 셋에 하나의 쿼리가 있든 두 개이상의 쿼리가 있든 관계없이 논리적인 작업 셋 자체가 100%적용되거나 (Commit 실행했을 때) 또는 아무것도 적용되지 않아야(ROLLBACK  또는 트랜잭션을 ROLLBACK 시키는 오류가 발생했을 때)함을 보장해주는 것이다.

1. MyISAM vs InnoDB

두 엔진에 똑같은 테이블을 생성한다.

mysql> CREATE TABLE tab_myisam(
          fdpk INT NOT NULL PRIMARY KEY(fdpk) )ENGINE=MyISAM;
         
mysql> INSERT INTO tab_myisam (fdpk) VALUES(3);


mysql> CREATE TABLE tab_innodb(
          fdpk INT NOT NULL PRIMARY KEY(fdpk) )ENGINE=INNODB ;
         
mysql> INSERT INTO tab_innodb (fdpk) VALUES(3);

이와 같이 각각 저장 후,AUTO-COMMIT 모드에서 다음 커리 문장을 각각테이블에서 실행한다.
mysql>INSERT INTO tab_myisam (fdpk) VALUES(1),(2),(3);
mysql>INSERT INTO tab_innodb (fdpk) VALUES(1),(2),(3);

그 결과 myisam에는 1,2,3이 다 들어가있지만 innodb는 3만 들어갔다.



댓글

이 블로그의 인기 게시물

(ElasticSearch) 결과에서 순서 정렬

(네트워크)폴링방식 vs 롱 폴링방식

(18장) WebSocekt과 STOMP를 사용하여 메시징하기