SQLサーバーでは、トランザクションログファイルにはREDOログとUNDOログの両方が含まれていますが、MYSQLトランザクションログにはUNDOログしか含まれていないため、正常にトランザクションのためのデータは、次にサーバーダウン?サーバーを再起動するときには、やり直し操作を行う必要があります。MYSQLはどのようにやり直し操作を行うのですか?
私は誤って入力してしまいます。なぜMYSQLにUNDOログではなくREDOログがないのですか?
SQLサーバーでは、トランザクションログファイルにはREDOログとUNDOログの両方が含まれていますが、MYSQLトランザクションログにはUNDOログしか含まれていないため、正常にトランザクションのためのデータは、次にサーバーダウン?サーバーを再起動するときには、やり直し操作を行う必要があります。MYSQLはどのようにやり直し操作を行うのですか?
私は誤って入力してしまいます。なぜMYSQLにUNDOログではなくREDOログがないのですか?
これはMySQLレベルでは行われていませんが、これはトランザクションをサポートするさまざまなテーブルタイプ(たとえばinnodb)を扱っています。
InnodbはMySQLで最も広く使用されているトランザクションテーブルタイプで、私の答えはこのテーブルタイプのみに焦点を当てています。他のトランザクションテーブルタイプについては、REDOログの詳細については、それぞれのドキュメントを参照してください。 innodb redo logs上
MySQLのドキュメントREDOログをどのようにInnoDBは店舗について説明します。デフォルトでは
、REDOログは、物理的にib_logfile0とib_logfile1という名前 ファイルのセットとしてディスク上に表現されています。 MySQLは、リドゥログ のファイルを循環的に書き込みます。 REDOログのデータは、影響を受けたレコードのうち という用語でエンコードされています。このデータを総称してREDOと呼びます。 REDOログを介したデータの受け渡しは、常に増加するLSN値 によって表されます。
トランザクションは正常に完了するか、トランザクションで1つのクエリが失敗すると失敗します。つまり、トランザクション**は部分的にはできません**。部分的な場合は、トランザクションではありません。これを確立したことは、トランザクションに問題がないことを意味します。あなたは他の何かに問題があるので、それが何であるかを詳細に書くことをお勧めします。 – Mjh
@ Mjhとは、トランザクションの代わりにトランザクションデータを部分的に書き込むことです。トランザクションが非常に大きいとします。 –