일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- php
- jenkins
- Firebase
- 전화번호 가져오기
- 아파치 https 적용
- 안드로이드
- vimrc
- 아파치
- Android
- Phone Selector
- 가상머신
- vi
- 버추얼박스
- 우분투 젠킨스
- SMS Retreiver API
- 가상컴퓨터
- 우분투 아파치 ssl
- CODEIGNITER
- phpMyAdmin
- jenkins 업데이트
- jenkins war
- vim
- 우분투
- 웹서버
- 리눅스
- virtualbox
- 인증번호 문자
- ubuntu
- 우분투 젠킨스 업데이트
- 젠킨스
- Today
- Total
철스토리
MySQL auto_increment locking 설정 본문
참고 : http://blog.recopick.com/37
MySQL을 사용하면서 황당한 경험을 했다.
idx 컬럼을 생성하고, idx컬럼을 Auto-Increment 설정을 하였다.
값을 하나 정상적으로 입력했을 때 idx는 1
두번째 값은 실패
세번째 값은 정상적으로 입력 : idx 3
두번째 입력이 실패했는데도 불구하고 Auto-Increment 값은 자동으로 증가하는 현상을 발견
MySQL 버전 5.1.22 전후로 innodb_autoinc_lock_mode 기본값이 변경되었기 때문에 발생한 현상
5.1.22 이전까지는 innodb_autoinc_lock_mode default 값이 0으로 traditional mode를 사용
5.1.22 이후부터는 default 값이 1인 consecutive mode가 사용
1. innodb_autoinc_lock_mode=0
- Auto-increment lock이 테이블 레벨로 동작
- Insert into로 실제 삽입된 경우가 아닌 업데이트 경우에는 해당 테이블의 Auto-increment 값을 증가시키지 않는 옵션
2. innodb_autoinc_lock_mode=1
- 단순한 insert에 대해서는 lock을 걸지 않고, INSERT 되는 레코드 건수를 정확히 예측할 수 있을 때 사용해야 함
- latch(mutex)를 이용하여 처리함
3. innodb_autoinc_lock_mode=2
- Auto-increment lock을 사용하지 않고, 항상 latch(mutex)를 사용함
- 대량의 INSERT 실행 도중 다른 커넥션에서 INSERT를 수행할 수 있어. 동시 처리 성능이 높음.
- 그러나 복제를 사용하는 경우 마스터와 슬레이브의 자동 증가 값이 달라질 가능성이 있으니 사용 시 주의가 필요
결과적으로 문제를 해결하기 위해서 innodb_autoinc_lock_mode 값을 기본값이 아닌 0으로 설정하여 사용해야 함
이 경우, Concurrent insert가 매우 빈번히 발생할 경우 Auto-increment lock이 병목이 될 가능성이 있으니 주의해야 함
SET global innodb_autoinc_lock_mode = 0;
커맨드 상에서 위와 같이 입력했을 때 Variable 'innodb_autoinc_lock_mode' is a read only variable 와 같은 에러가 나올 수 있다.
이때는 /etc/mysql/mysql.conf.d/mysql.cnf 파일을 열어서 innodb_autoinc_lock_mode = 0 이라고 추가해 준다.
'서버설정 > 우분투 서버설정' 카테고리의 다른 글
Ubuntu Jenkins 설치하기, 안드로이드 빌드하기 - 1 (0) | 2019.02.11 |
---|---|
phpmyadmin 접속 시간 늘리기 (0) | 2016.10.25 |
CodeIgnighter 에서 index.php 제거하기 (0) | 2016.09.18 |
Ubuntu에 CodeIgnighter 설치하기 (0) | 2016.09.18 |
우분투(ubuntu) 고정아이피 설정방법 (0) | 2016.07.11 |