MySQLは、更新と同じ元のデータ内のデータを変更は再びそれを行うだろうか?

背景

このホワイトペーパーのテストMySQLの更新ステートメントは(すなわち、変更されていない)同じ更新ステートメントは、MySQLの内部で再実行されます行い、元のデータに対して実行されますか?

テスト環境

  • MySQL5.7.25
  • CentOSの7.4

binlog_format为のROW

  1. パラメータ
    ここに画像を挿入説明
  2. 試験手順
    ここに画像を挿入説明
    ここに画像を挿入説明
    ここに画像を挿入説明
  3. 概要

原因のMySQLのフィールドのすべてを記録する必要性にbinlog_format =行とbinlog_row_image = FULL、で読んだデータを読み出し、すべてのデータを置くときに、その更新が重複したデータを実行しないであろう、内部BINLOG。それは「(1,55)に変更した」MySQLのと呼ばれるこのインタフェースは、InnoDBエンジンを提供するが、エンジンは同じ値元として、更新されず、直接リターンを発見しました。

binlog_format为声明

  1. パラメータ
    ここに画像を挿入説明
  2. 試験手順
    ここに画像を挿入説明
    ここに画像を挿入説明
    ここに画像を挿入説明
  3. 概要

= FULL、注意深く実行InnoDBの内部UPDATEステートメント、すなわち、binlog_format =ステートメントとbinlog_row_imageで「修正値(1,999)、」この操作は、ロックがロックされ、更新を更新します。

おすすめ

転載: blog.csdn.net/qq_33235529/article/details/89227547