検証例 MySQL | 同じ値を持つフィールドを更新すると、binlog に記録されます

検証例 MySQL | 同じ値を持つフィールドを更新すると、binlog に記録されます

1. はじめに

数日前、開発仲間から、フィールドを同じ値に更新すると binlog が記録されるかどうか尋ねられました。私は、記録されないと答えました。

厳密に言えば、シナリオを区別する必要があるため、この答えは不正確です。更新ステートメントを binlog に記録するかどうかは、binlog_format の設定によって異なります。特定の状況では、練習をすれば完璧になります。

2回目のテスト

2.1 binlog_formatはROWモードです

2.2 binlog_formatはSTATEMENTモードです

binlog の内容を解析し、更新ステートメントを完全に記録します。

2.2 binlog_format は MIXED モードです

row_format が mixed または statement 形式の場合、binlog のサイズが変わります。データが実際に更新されたかどうかに関係なく、MySQL は実行された SQL を binlog に記録します。

3つの結論

行ベース モードでは、サーバー レイヤーは更新するレコードを照合し、新しい値が古い値と一致していることを検出します。レコードは更新されず、binlog を記録せずに直接戻ります。

MySQL は、ステートメントまたは混合形式に基づいて更新ステートメントを実行し、更新ステートメントを binlog に記録します。

では、なぜ statement と mixed は完全な SQL ステートメントを記録するのでしょうか?これについては次の記事で説明します。ソース コードを解析する必要があり、Clion を使用して MySQL デバッグ環境をコンパイルすることにまだ成功していないためです。

上記は、MySQL|update フィールドに同じ値がある場合に、binlog の詳細が記録されるかどうかを確認する例です。MySQL update フィールドの詳細については、123WORDPRESS.COM の他の関連記事に注目してください。

以下もご興味があるかもしれません:
  • MySQL は、あるテーブルから別のテーブルにフィールドを更新します。
  • フィールド内のコンテンツの一部を置き換えるMySQL UPDATEステートメント
  • 複数のフィールドを変更するためのMysql更新の構文の詳細な分析

<<:  Alibaba Cloud Nginx はドメイン名アクセス プロジェクトを実装するために https を設定します (グラフィック チュートリアル)

>>:  Vue カプセル化に基づくプルダウン更新およびプルアップ読み込みコンポーネント

推薦する

Linux 仮想マシンの IP アドレスを変更し、ゲートウェイを確認し、ネットワーク環境を構成する方法に関するチュートリアル

仮想マシンの IP アドレスを変更します。 次のインターフェイスに入り、サブネット IP を直接変更...

vue-router を遅延ロードする 3 つの方法のまとめ

遅延読み込みを使用しない 'vue' から Vue をインポートします。 '...

alpineをベースにdockerfileで作成したtomcatイメージの実装

1.アルパインイメージをダウンロードする [root@docker43 ~]# docker pul...

CSS3 フィルター属性の使い方の紹介

1. はじめにフロントエンドページのアニメーション効果を記述する場合、filter 属性は多かれ少な...

FileZilla 425 FTP に接続できない (Alibaba クラウド サーバー) の解決策

Alibaba Cloud ServerがFTPに接続できないFileZilla 425 データ接続...

Linux システムでの vim プラグインのインストールの概要

目次vimプラグインマネージャーをインストールするプラグインデモを追加プラグインを削除するには: v...

Vue でインデックスをキー属性値として使用することが推奨されないのはなぜですか?

目次序文キーの役割差分アルゴリズムにおけるキーの役割ヘッドノードを同期するテールノードを同期する新し...

JSが絵柄デジタル時計を実現

この記事の例では、画像デジタル時計を実現するためのJSの具体的なコードを参考までに共有しています。具...

Dockerイメージを素早くデプロイして実行する最新のIDEAプロセスの詳細な説明

背景docker とアイデアを使用して、Java Web の開発、展開、運用までのプロセス全体を実現...

docker-compose を使用して Clickhouse をすばやくデプロイする方法のチュートリアル

ClickHouse は、オープンソースの列指向 DBMS (Yandex によって開発) です。 ...

MySQLデータベースに他のIPアドレスからアクセスできない問題の解決策

序文先ほどのプロジェクトを参考にすると、環境は整いました。プロジェクトの準備と検証の段階で、問題が発...

Tomcat を設定して IntelliJ IDEA 2018 で最初の Java Web プロジェクトを実行する方法

1 Tomcatをダウンロードして起動する公式サイト http://tomcat.apache.or...

Linux sar コマンドの使用方法とコード例の分析

1. CPU使用率sar -p (一日中表示) sar -u 1 10 (1: 1秒ごと、10: 1...

HTMLは角丸四角形を簡単に実装します

質問: div+css と配置を使用して角丸四角形を実現するにはどうすればよいですか?ソリューション...

MySQL 接続とコレクションの簡単な分析

結合クエリ結合クエリとは、2 つ以上のテーブル間のマッチング クエリを指し、一般的には水平操作と呼ば...