序文: 前回の記事では、MySQL システムでよく使用されるログをいくつか説明しました。実は、トランザクション関連のログ、REDO ログ、UNDO ログがありますが、これらはまだ紹介されていません。他のログと比較すると、REDO ログと UNDO ログはより神秘的で観察が困難です。本稿では、主にこれら2種類のトランザクションログの機能と運用・保守方法について紹介します。 1. ログの再実行 トランザクションの 4 つの主要な特性の 1 つが永続性であることは誰もが知っています。具体的には、トランザクションが正常に送信される限り、データベースに加えられた変更は永続的に保存され、いかなる理由でも元の状態に戻すことはできません。では、MySQL はどのようにして一貫性を確保するのでしょうか?最も簡単な方法は、トランザクションがコミットされるたびに、トランザクションに関係するすべての変更されたデータ ページをディスクに更新することです。ただし、そうすると、主に次の 2 つの点で重大なパフォーマンス上の問題が発生します。
そのため、MySQL は、トランザクションによってデータ ページに加えられた変更のみを記録する redo ログを設計しました。これにより、パフォーマンスの問題を完全に解決できます (相対的に言えば、ファイルは小さくなり、シーケンシャル IO になります)。 REDO ログは、メモリ内のログ バッファ (REDO ログ バッファ) と、ディスク上のログ ファイル (REDO ログ ファイル) の 2 つの部分で構成されます。 MySQL は DML ステートメントを実行するたびに、まずレコードを REDO ログ バッファに書き込み、次に特定の時点で複数の操作レコードを REDO ログ ファイルに書き込みます。 デフォルトでは、REDO ログはディスク上で ib_logfile0 と ib_logfile1 という名前の 2 つの物理ファイルによって表されます。 REDO ログ関連のパラメータについて簡単に説明します。
REDO ログとそのバッファ サイズを変更するには、データベース インスタンスを再起動する必要があります。初期化中に評価を行うことをお勧めします。特にデータベース インスタンスが頻繁に更新される場合は、REDO ログ グループの数とサイズを適切に増やすことができます。ただし、REDO ログ サイズを大きくしすぎることはお勧めしません。 2. 元に戻すログ UNDO ログは主にデータの原子性を保証するために使用されます。トランザクションが発生する前のデータのバージョンを保存し、ロールバックに使用できます。たとえば、INSERT ステートメントには対応する DELETE の UNDO ログがあり、各 UPDATE ステートメントには反対の UPDATE の対応する UNDO ログがあるため、エラーが発生した場合に、データをトランザクション前の状態にロールバックできます。同時に、UNDO ログは MVCC (マルチバージョン同時実行制御) の実装の鍵でもあります。 MySQL 5.7 では、UNDO ログはデフォルトで共有テーブルスペース ibdata に保存されます。初期化中にパラメータを設定することで、別のファイルに変更することもできます。次に、UNDO ログに関連するパラメータをいくつか示します。
UNDO ログ関連のパラメータはほとんど変更されません。 MySQL 8.0 では、デフォルトで独立した表領域が有効になっているため、UNDO ログ表領域のサイズ設定がより柔軟になる可能性があります。 要約: この記事は主にREDOログとUNDOログの役割と関連するパラメータ設定について紹介します。この記事は急いで書いたものです。間違いがあれば、メッセージを残して指摘してください。これら 2 種類のログのより深い内容については、おそらく著者はまだ、より徹底的に書く能力が十分ではないのでしょう。さて、MySQL関連のログについての記事を2つ書きました。何か参考になれば幸いです。 以下もご興味があるかもしれません:
|
<<: Linux sar コマンドの使用方法とコード例の分析
>>: Vue+element はローカル検索機能付きのドロップダウン メニューを実装します
元記事:究極の IE6 チートシート: 25 以上の Internet Explorer 6 のバグ...
目次WebSocketを使用する理由ソケット.ioオープンソースプロジェクト効果プレビューアプリイン...
Linux マスターになりたいなら、いくつかの Linux コマンドを習得することが不可欠です。 L...
この記事は主に、nginx に基づいてブラウザネゴシエーションキャッシュを設定する詳細なプロセスを紹...
序文インデックスが順序付けられていることは誰もが知っていると思いますが、MySQL の以前のバージョ...
バイオニックデザインといえば、飛行機の発明、ドバイのブルジュ・アル・アラブ、平泳ぎなどを思い浮かべる...
目次背景DHCPの設定DHCP ファイル (動的ホスト構成プロトコル) の編集tftp 設定sysl...
目次1. マスタースレーブ同期原理マスタースレーブ同期アーキテクチャ図(非同期同期)マスタースレーブ...
このエラーは初心者によく発生します。この記事では主に、エラー 2003 (HY000): '...
最近、プロジェクトではラベルやボタンなどの断片的な画像をたくさん使用する必要があります。また、CSS...
1. コマンドの紹介bzip2 は、ファイルの圧縮と解凍に使用されます。これは、Linux システム...
目次tf-gpu をダウンロード取得したtf-gpuイメージに基づいて独自のイメージを構築するイメー...
目次1. 基本概念酸3.自動コミット4. トランザクション分離レベル5. 同時実行の一貫性の問題6....
目次概要ビルドプロセス関連APIリードライン基本的な使い方チョーククリア手順に関する追加情報完全なコ...
ここでは、PHP、JSP、または .NET 環境については説明しません。アーキテクチャの観点から問題...