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

推薦する

Docker で Oracle 11g イメージ構成をプルダウンする際の問題を分析する

1. イメージをプルするdocker pull レジストリ.cn-hangzhou.aliyuncs...

HTML メタの使用例

使用例コードをコピーコードは次のとおりです。 <!DOCTYPE html> <!...

CSS を使用して fullpage.js のフルスクリーン スクロール効果を実装するサンプル コード

最近 CSS を勉強していたとき、 2 つの CSS プロパティだけを使用して全画面スクロール効果を...

Vueリクエストインターセプターの設定方法の詳しい説明

以下の手順に従ってください1. request.jsコンテンツ: http リクエスト インターセプ...

Vue 親子コンポーネントの相互値の転送と呼び出し

目次1. 親が子コンポーネントに値を渡す2. 子コンポーネントが親コンポーネントに値を渡す3. 子コ...

docker を使用してシンプルな C/C++ プログラムをデプロイする方法

1. まずhello-world.cppファイルを作成しますプログラムコードは次のとおりです。 #i...

プログレッシブ ウェブ アプリ (PWA) の開発方法

目次概要必要とするアプリURL PWA にはどのような技術コンポーネントが必要ですか?マニフェストフ...

簡単な計算機を実装する小さなプログラム

この記事の例では、簡単な計算機を実装するための小さなプログラムの具体的なコードを参考までに共有してい...

Ubuntu 20.04 に cuda10.1 をインストールする手順 (グラフィック チュートリアル)

インストール前の準備CUDA の主な目的はディープラーニングであり、現在主流のディープラーニングフレ...

JavaScript はクリックして画像の形状を変更する (変換アプリケーション) を実装します。

JavaScriptをクリックすると画像の形状が変わります(変形の応用)。参考までに具体的な内容は...

MySQL 8.0.23のルートパスワードをリセットするための最適なソリューション

この方法は2021年2月7日に編集されました。私が使用しているバージョンは8.0.23です。事件の原...

vue+el-element でファイル名に応じてダイアログを動的に作成する実践

目次背景成し遂げる1. カプセル化された /utils/dialogControl.js 2.ダイア...

JS 矢印関数に適さないシナリオは何ですか?

目次概要オブジェクトにメソッドを定義するオブジェクトリテラルオブジェクトプロトタイプ動的コンテキスト...