MySQL でのログインを取り消す

MySQL でのログインを取り消す

コンセプト紹介:

MySQL の redo ログにはトランザクションの動作が記録されることはご存じのとおりです。サーバーがクラッシュした場合、トランザクションをやり直すことでデータを復元できます。ただし、トランザクションをロールバックする必要がある場合があります。つまり、現在の状況になる前のトランザクションの状態を知る必要があります。この場合、undo ログが役立ちます。つまり、UNDO ログは、データを変更前の状態に復元するために使用されます。したがって、データベースを変更する場合、このプロセスで REDO ログと UNDO ログが生成されることを知っておく必要があります。

保管場所:

また、REDO ログは一般に ib_log と呼ばれる REDO ログ ファイルに配置され、UNDO ログはデータベース内の「セグメント」に格納されることもわかっています。この概念については、8 月 21 日の記事で説明しました。忘れてしまった方は、戻って確認してください。UNDO ログ セグメントは、共有テーブルスペースにあります。

ロールバック操作:

さて、私たちはすでにundoの概念を知っています。undoは実際には共有テーブルスペース内の領域です。その主な機能は、トランザクションを変更が行われる前の状態に復元することです。ただし、リカバリ状況は一般的に2種類に分かれており、1つは論理リカバリ、もう1つは物理リカバリです。ここで強調する必要があるのは、undoリカバリは論理リカバリであるということです。つまり、100万個のデータを挿入すると、InnoDBは新しいデータページを割り当ててこのデータを保存し、トランザクションがロールバックされると、undoの機能はデータページをリサイクルするのではなく、これらの挿入操作を削除操作に変更してロールバックを実行します。このプロセス中、共有表領域のサイズは変更されません。さらに、UNDO ログは削除操作を挿入操作に変換し、更新操作を逆更新操作に変換します。

削除方法:

もう一つの注意点は、トランザクション共有テーブルスペースに UNDO ログを書き込むプロセスでは、REDO ログも書き込む必要があることです。トランザクションがコミットされると、トランザクションの永続性が有効になり、UNDO ログは不要になります。ただし、InnoDB は UNDO ログを直接削除するのではなく、UNDO ログのリンク リストに配置します。いつ削除するかは、MySQL パージ スレッドによって異なります。これは、他のトランザクションが UNDO ログを使用してこのレコードの以前のバージョンを取得する必要がないようにするために行われます。

スペース割り当て:

実際の運用では、データベース インスタンスが多数のトランザクションを実行する場合があります。各トランザクションの undo を保存するために別のログ データ ページを割り当てると、ストレージ領域が無駄になります。簡単な計算をしてみましょう。アプリケーションの TPS が 1000 であると仮定すると、各トランザクションに undo ページが割り当てられます。データ ページのサイズは 16kb で、1 分間に 60*1000 のデータ ページが生成されます。すると、1 分間に必要なスペースは約 960M のディスク領域となり、明らかに無理があります。そのため、innodb では undo ページを再利用できます。具体的な方法は、トランザクションがコミットされたときに、undo ページをリンク リストに入れ、undo ページの使用済み領域が 75% 未満かどうかを判断します。そうであれば、undo ページを再利用でき、後続の undo ログを現在の undo ログの後ろに追加できます。もちろん、show engine innodb status を使用してリンク リスト内の undo ログの数を表示することもできますが、ここでは説明しません。

上記はMySQLのundoログの詳細な内容です。MySQLのundoログの詳細については、123WORDPRESS.COMの他の関連記事に注目してください。

以下もご興味があるかもしれません:
  • MySQL シリーズ: redo ログ、undo ログ、binlog の詳細な説明
  • MySQLのREDOログ(リドゥログ)とロールバックログ(アンドゥログ)の詳しい説明
  • MySQLの7種類のログの概要
  • MySQLはデータ復旧を実装するためにbinlogログを使用する
  • MySQL のスローログ監視の誤報問題の分析と解決
  • MySQL スロークエリログの役割と公開
  • MySQL スロークエリログの有効化と設定
  • MySQLを監視するためのbinlogログ解析ツールの詳しい説明:Canal
  • MySQL 中断された接続警告ログの分析
  • MYSQL SERVER のログファイルを縮小する方法
  • MySQL Undo ログと Redo ログの概要

<<:  アイデアをDockerに接続してワンクリックでデプロイする方法

>>:  WeChatアプレット開発で遭遇したことのない落とし穴のまとめ

推薦する

Linux インストール Apache サーバー構成プロセス

袋を用意するインストールApacheがすでにインストールされているかどうかを確認するrpm -qa ...

JS の配列トラバーサルについて、一般的なループをいくつ知っていますか?

序文基本的なデータ構造として、配列とオブジェクトはさまざまなプログラミング言語で重要な役割を果たしま...

MySQLを安全にシャットダウンする方法

MySQL サーバーをシャットダウンする場合、シャットダウン方法に応じてさまざまな問題が発生する可能...

MySQL 8.0.15 のインストールと設定方法のグラフィックチュートリアル

この記事ではMySQL 8.0.15のインストールと設定方法を参考までに記録します。具体的な内容は以...

MySQLにおける遅いSQLの最適化の方向性について詳しく話しましょう

目次序文SQL文の最適化遅いクエリSQLを記録する設定を変更する方法スロークエリログを表示するSQL...

Chrome をクラッシュさせる CSS コードの行

一般的な CSS コードでは、UI レイアウトや互換性に関して軽微な問題が発生するだけです。しかし、...

一般的なDocker Composeコマンドの詳細な説明

1. Docker Compose の使用方法は docker コマンドの使用方法と非常に似ています...

CSS の :focus-within の楽しさについて簡単に説明します

Bステーションでパスワードを入力するときに目を覆っているこの画像を見たことがある人もいると思いますこ...

div+css3 を使用して背景グラデーション ボタンを実装するためのサンプル コード

フロントエンド ページの需要が増加し続けるにつれて、一部のシーンではグラデーションの背景要素が必要に...

jsはシングルクリックでテーブルを変更することを実装します

Pure jsは、参照用にワンクリックで編集可能なテーブル(トランスクリプトに似たもの)を実装してい...

LinuxはMySQLデータベースの自動バックアップとスケジュールバックアップを毎日実装しています

概要バックアップは災害復旧の基礎であり、システム操作エラーやシステム障害によるデータ損失を防ぐために...

JavaScriptの記事では、Webフォームの操作方法を説明します。

1. はじめに先ほど、ウェブページの急速な発展について紹介しました。今回は、より深い内容についてお...

CSS でのフィルタープロパティの使用に関する詳細な説明

フィルター属性は要素の視覚効果を定義しますぼかし画像にガウスぼかしを適用します。 「半径」の値は、ガ...

MySQLトリガートリガー例の詳細な説明

目次トリガーとは何かトリガーを作成する表は次のようになります。さらにいくつかの単語を挙げます。制限と...

Dockerコンテナを終了した後も実行を継続する方法

現象:イメージを実行します (例: ubuntu14.04)。 docker run -it --r...