라이브러리

[MYSQL_CONFIG] --binlog_format - 바이너리 로그 형식 설정 (ROW, STATEMENT, MIXED)




MySQL Binlog Format

MySQL Binlog Format은 MySQL의 데이터를 로그로 기록하는 형식입니다. Binlog은 Binary Log의 약자로, MySQL 서버의 모든 DML(INSERT, UPDATE, DELETE) 및 DDL(CREATE, ALTER, DROP) 연산을 기록합니다. Binlog은 데이터 복구, 데이터 복사, 데이터 마이그레이션, 데이터 백업 등 다양한 용도로 사용됩니다.

Binlog Format의 종류

MySQL Binlog Format에는 세 가지 종류가 있습니다.

1. ROW-Based Format

ROW-Based Format은 각 행을 별도로 기록하는 형식입니다. 각 행은 ROW_FORMAT 형식으로 기록되며, ROW_FORMAT에는 필드 이름, 필드 값, ROW_ID 등이 포함됩니다.

예제:

#hostingforum.kr
sql

-- ROW-Based Format

INSERT INTO users (id, name, email) VALUES (1, 'John Doe', 'john.doe@example.com');



ROW-Based Format의 예제는 다음과 같습니다.

#hostingforum.kr
sql

# at 0

SET TIMESTAMP=1643723400

INSERT INTO users (id, name, email) VALUES (1, 'John Doe', 'john.doe@example.com')



2. STATEMENT-Based Format

STATEMENT-Based Format은 각 쿼리를 별도로 기록하는 형식입니다. 각 쿼리는 STATEMENT 형식으로 기록되며, STATEMENT에는 쿼리 문법, 쿼리 파라미터 등이 포함됩니다.

예제:

#hostingforum.kr
sql

-- STATEMENT-Based Format

INSERT INTO users (id, name, email) VALUES (1, 'John Doe', 'john.doe@example.com');



STATEMENT-Based Format의 예제는 다음과 같습니다.

#hostingforum.kr
sql

# at 0

SET TIMESTAMP=1643723400

INSERT INTO users (id, name, email) VALUES (1, 'John Doe', 'john.doe@example.com')



3. MIXED Format

MIXED Format은 ROW-Based Format과 STATEMENT-Based Format의 혼합 형식입니다. ROW-Based Format으로 기록되는 쿼리는 ROW_FORMAT 형식으로 기록되며, STATEMENT-Based Format으로 기록되는 쿼리는 STATEMENT 형식으로 기록됩니다.

예제:

#hostingforum.kr
sql

-- MIXED Format

INSERT INTO users (id, name, email) VALUES (1, 'John Doe', 'john.doe@example.com');

UPDATE users SET name = 'Jane Doe' WHERE id = 1;



MIXED Format의 예제는 다음과 같습니다.

#hostingforum.kr
sql

# at 0

SET TIMESTAMP=1643723400

INSERT INTO users (id, name, email) VALUES (1, 'John Doe', 'john.doe@example.com')

# at 1

SET TIMESTAMP=1643723401

UPDATE users SET name = 'Jane Doe' WHERE id = 1



MySQL Binlog Format 설정

MySQL Binlog Format을 설정하려면 `--binlog_format` 옵션을 사용합니다.

#hostingforum.kr
sql

-- ROW-Based Format

mysql -u root -p --binlog_format=ROW



-- STATEMENT-Based Format

mysql -u root -p --binlog_format=STATEMENT



-- MIXED Format

mysql -u root -p --binlog_format=MIXED



MySQL Binlog Format의 장단점

MySQL Binlog Format의 장단점은 다음과 같습니다.

* ROW-Based Format:
+ 장점: 데이터 복구 시에 더 빠르고 정확한 결과를 얻을 수 있습니다.
+ 단점: Binlog의 크기가 더 크고, Binlog을 처리하는 시간이 더 오래 걸립니다.
* STATEMENT-Based Format:
+ 장점: Binlog의 크기가 더 작고, Binlog을 처리하는 시간이 더 빠릅니다.
+ 단점: 데이터 복구 시에 더 오래 걸리고, 정확한 결과를 얻을 수 없습니다.
* MIXED Format:
+ 장점: ROW-Based Format과 STATEMENT-Based Format의 장점을 모두 얻을 수 있습니다.
+ 단점: Binlog의 크기가 더 크고, Binlog을 처리하는 시간이 더 오래 걸립니다.

결론

MySQL Binlog Format은 MySQL의 데이터를 로그로 기록하는 형식입니다. ROW-Based Format, STATEMENT-Based Format, MIXED Format이 있습니다. 각 형식의 장단점을 이해하고, MySQL Binlog Format을 적절하게 설정하여 데이터 복구, 데이터 복사, 데이터 마이그레이션, 데이터 백업 등 다양한 용도로 사용할 수 있습니다.
  • profile_image
    나우호스팅 @pcs8404 

    호스팅포럼 화이팅!

    댓글목록

    등록된 댓글이 없습니다.

  • 전체 10,077건 / 56 페이지

검색

게시물 검색