반응형

* 저장엔진 

  접속기능, SQL문의 내용을 사전에 조사하는 기능 => 상위부분

  상위 부분의 지시를 받아 실제로 검색이나 파일을 조작하는 기능 => 하위 부분 = 저장엔진

  테이블 별로 저장엔진을 지정할 수 있다.

 - 저장엔진확인법

  SHOW CREATE TABLE 테이블이름;

 ENGINE=InnoDB 임을 알 수 있다.

  - 저장엔진 변경

    ALTER TABLE 테이블 이름 ENGINE=엔진이름;

 

 

 

* 트랜젝션

A의 계좌에서 B의 계좌로 10만원을 송금

1. A의 계좌에서 10만원 뺌

2. B의 계좌에 10만원 넣음

 

만약 1번 시점에 오류가 발생하면, 2번이 실행되지 않고 

A의 계좌에서 10만원만 빠지고 그 돈은 사라질 것이다.

따라서 1,2번을 묶어서 하나로 처리한다. 

 

위와 같이 여러 단계의 처리를 하나의 처리처럼 다루는 것이 트랜젝션이다.

트랜젝션의 실행결과를 데이터베이스에 반영하는 것이 Commit이며 

반영시키지않고 되돌리는 것을 RollBack이라 한다.

 

 - 트랜젝션 시작

  START TRANSACTION이나 BEGIN, BEGIN WORK

트랜젝션을 시작하고 tb테이블을 삭제하였다.

이 시점에 테이블의 일부기능에 lock이 걸린다. 

따라서 다른 세션에서 INSERT 등의 명령을 실행할 수 없다.

트랜젝션을 시작한 콘솔창에서 COMMIT이나 ROLLBACK을 해야 다른 명령을 실행 할 수 있다.

ROLLBACK을 하면 삭제된 테이블이 다시 복구되는 것을 알 수 있다.

 

- 자동 커밋 기능

 일반적으로 MYSQL에서 명령을 실행하면 그대로 반영된다.

 명령을 실행하면 그대로 반영되는 기능이 자동 커밋기능이다.

 자동 커밋 기능의 기본 설정은 ON이다.

 자동 커밋 기능을 끄려면

 SET AUTOCOMMIT=0;

 으로 하면 된다.

 

 

 자동 커밋 기능을 끄면 ROLLBACK을 사용할 수 있다.

 SET AUTOCOMMIT=1;

을 하면 다시 자동커밋 기능을 켤 수 있다.

 

자동커밋 기능이 설정되어있는지 확인하려면

SELECT @@AUTOCOMMIT;

을 하면 된다.

0이면 OFF, 1이면 ON

 

트랜젝션을 COMMIT하지 않고 콘솔창을 닫을 경우엔 

트렌젝션을 시작하고 입력한 명령들은 취소된다.

즉, 커밋을 하지 않고 종료하면 그 내용은 파기된다.

 

 

 

728x90
반응형

'공부 > 데이터베이스' 카테고리의 다른 글

데이터베이스 예제 2  (0) 2021.04.20
데이터베이스 예제 1  (0) 2021.04.19
정리  (0) 2021.04.19
파일 사용  (0) 2021.04.14
SQL JOIN  (0) 2021.03.30
블로그 이미지

아상관없어

,