7. Lock 관련 설정

차분한열정·2021년 4월 27일
0
post-custom-banner

my.cnf에 InnoDB에서 잠금 획득을 위해 최대 대기할 수 있는 시간(초 단위)를 설정할 수 있다.

1.innodb_lock_wait_timeout

이 옵션에 설정된 시간 동안 잠금을 기다리게 되면 InnoDB 스토리지 엔진이 'Lock wait timeout exceed' 오류를 발생시키고 쿼리는 실패 처리가 된다. 하지만 이 오류가 발생해도 자동 롤백되는 것은 아니고, 다시 한번 실패한 쿼리부터 실행하기 시작하면 된다.

이 설정은 InnoDB의 레코드 잠금 간에만 유효하고, 테이블 잠금의 경우에는 적용되지 않는다.

2.innodb_flush_log_at_trx_commit

InnoDB에서 트랜잭션이 커밋될 때마다 로그(Redo 로그)를 디스크에 플러시할지 결정하는 옵션이다. 디스크에 데이터를 쓰는 작업은 크게 '운영체제의 버퍼로 기록'하는 작업과 '버퍼의 내용을 디스크로 복사'하는 2단계로 나뉜다. 완벽한 트랜잭션 보장을 위해서는 반드시 커밋할 때 디스크의 데이터를 동기화해주는 것이 당연하다. 하지만 많은 양의 데이터를 처리해야하고, 데이터는 조금 손실돼도 무방한 경우에는 이 값은 0으로 설정해 디스크 입출력 성능을 개선할 수 있다.

3. innodb_flush_method

profile
성장의 기쁨
post-custom-banner

0개의 댓글