데이터를 파일에 저장해도 되는데 DB에 저장하는 이유는 트랜잭션이라는 기능 때문이다.
모든 작업이 성공해 DB에 반영되는 것을 Commit
작업 중 하나라도 실패해서 이전 상태로 넘어가는 상태를 Rollback
데이터 변경 쿼리를 실행하고 결과를 반영하려면 commit을 호출하고, 결과를 반영하고 싶지 않다면 rollback 을 호출한다.
커밋을 호출하기 전에 임시로 데이터를 저장하는 것으로, 해당 트랜잭션을 시작한 세션에게만 변경 데이터가 보이고, 다른 다른 세션에게는 변경데이터가 보이지 않는다.
(다른 세션이 커밋되지 않은 데이터를 보게 된다면 DB 정합성에 문제가 발생한다. READ UNCOMMITED는 보인다.)
자동커밋 : 하나의 쿼리 실행 후 자동으로 커밋을 호출한다.
set autocommit true
수동커밋 : 모든 쿼리 실행 후 commit 명령어로 커밋을 호출해야 한다.
set autocommit false