検証例 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 カプセル化に基づくプルダウン更新およびプルアップ読み込みコンポーネント

推薦する

WeChatアプレット開発の共通機能と使用方法のまとめ

ここでは、主に小さなプログラムの開発プロセスでよく使われる、非常に実用的な機能ポイントをいくつか整理...

Vueはechartsを使用して組織図を描画します

昨日、円形のプログレスバー (Vue 円形プログレスバーを参照してください) についてブログを書きま...

2列の水平タイムラインを実装するためのVueサンプルコード

目次1.コンポーネントtimelineH.vueを実装する2. コンポーネントの呼び出しこの記事では...

Web スライスとは何ですか?

IE8 の新機能 Web スライス (Web スライス) Microsoft は 3 月 20 日...

素晴らしいCSS属性MASKの詳しい説明

この記事では、CSS の非常に興味深い属性マスクを紹介します。名前が示すように、マスクはマスクと翻訳...

CentOS8 で MySQL 8.0 をインストールしてデプロイする方法

MySQL 8 の公式バージョン 8.0.11 がリリースされました。公式発表によると、MySQL ...

Docker を使用して ELK ログ システムを構築する例

以下のインストールではすべて、インストール ルート ディレクトリとして ~/ ディレクトリが使用され...

WeChatアプレットは水平および垂直スクロールを実現

この記事の例では、WeChatアプレットの水平スクロールと垂直スクロールを実現するための具体的なコー...

Linux で指定されたフォルダの各サブフォルダ内のファイル数を表示する

カウントスクリプト #!/bin/sh 引数の数=$# [ $numOfArgs -ne 1 ]の場...

Nginx で HTTPS 証明書を構成する詳細なプロセス

1. HttpとHttpsの違いHTTP: インターネットで最も広く使用されているネットワーク プロ...

CSS3実践手法のまとめ(推奨)

1. 丸い境界線: CSSコードコンテンツをクリップボードにコピー境界線の半径: 4px ; 2....

Docker初心者が初めてよく使うコマンドを試してみる練習記録

Docker を正式に使用する前に、まず Docker でよく使用されるコマンドに慣れておきましょう...

Xtrabackup を使用した MySQL バックアップ プロセスの詳細な説明

目次01 背景02 はじめに03 ワークフロー04 いくつかの質問05 ファイルをバックアップする0...

Ubuntu 20.04 に GitLab をインストールして設定する方法

導入GitLab CE または Community Edition は、主に Git リポジトリのホ...

Chrome、Firefox、IEで入力カーソルの位置がずれる問題の解決方法

ブラウザで入力カーソルがずれる問題の詳しい説明<br />仕事で問題に遭遇し、解決策を探...