MySQL Binlog format
- Statement : 쿼리를 그대로 기록하는 방식
- Row : 생성/변경된 모든 Row 정보를 기록하는 방식
- Mixed : Statement, Row 가 혼합된 방식
Statement 사용시 복제 구성에서 now(), sysdate() 같은 함수를 쓰는 쿼리가 있을 경우 Slave 에서 반영될때 시간차이가 발생한다.
Master 에서 10:00:00 에 쿼리가 실행된 쿼리가 Slave에 10:00:04초에 반영되면 4초의 오차 발생!
Row 의 경우 기록되는 로그사이즈가 크다. 이로 인한 디스크 공간, I/O, 네트워크 부하 등등이 문제다.
그래서 사용하는게 Mixed!
Mixed 의 경우 now(), sysdate() 같은 함수는 row 형태로 저장된다.
binlog_row_image
Row 방식으로 binlog를 기록할 때 로깅할 컬럼 Set을 지정한다.
- FULL : 변경 전/후 이미지 전체를 binlog 에 기록
- MINIMAL : 최소한의 값만 기록, 변경된 데이터와 PK 만 기록
- NOBLOB : BLOB, TEXT 같이 사이즈가 큰 값을 제외하고 기록
Statement, Mixed 만 써봤네요.
ftp 게임하다 갑자기 이게 왜 생각날까? ㅡ_ㅡ);;
생각난김에 써봤음
'MySQL' 카테고리의 다른 글
MySQL InnoDB Row 형식 (0) | 2021.06.04 |
---|---|
online ddl 알고리즘 (0) | 2021.05.27 |
인덱스 최대 크기 (0) | 2021.05.13 |
MySQL 포퍼먼스 튜닝 (0) | 2021.05.12 |
delete .. where in () 시 결합인덱스 사용 (0) | 2021.05.03 |