1 MySQL5.6 1.1 関連パラメータ MySQL 5.6 では、innodb_undo_directory、innodb_undo_logs、innodb_undo_tablespaces の 3 つのパラメータが追加され、これにより、undo ログを ibdata1 から移動して個別に保存できるようになります。
デフォルトのパラメータ: mysql> '%undo%' のような変数を表示します。 +-------------------------+-------+ | 変数名 | 値 | +-------------------------+-------+ | innodb_undo_directory | . | | innodb_undo_logs | 128 | | innodb_undo_tablespaces | 0 | +-------------------------+-------+
インスタンスの初期化は、innodb_undo_tablespaces を変更することです。 mysql_install_db ...... --innodb_undo_tablespaces $ ls ... 元に戻す001 元に戻す002 元に戻す003
1.2 使用方法 インスタンスを初期化する前に、innodb_undo_tablespaces パラメータ (3 以上を推奨) を設定して、UNDO ログを別の UNDO テーブルスペースに設定するだけです。より高速なデバイスに undo ログを配置する必要がある場合は、innodb_undo_directory パラメータを設定できますが、現在 SSD が非常に普及しているため、通常はこれを行いません。 innodb_undo_logs はデフォルトで 128 に設定できます。 UNDO ログは ibdata の外部に保存できます。しかし、この機能はまだ役に立ちません:
1.3 大規模トランザクションのテスト mysql> テーブル test.tbl( id int primary key auto_increment, name varchar(200) ) を作成します。 クエリは正常、影響を受けた行は 0 行 (0.03 秒) mysql> トランザクションを開始します。 クエリは正常、影響を受けた行は 0 行 (0.00 秒) mysql> test.tbl(name) に値を挿入します(repeat('1',00)); クエリは正常、1 行が影響を受けました (0.00 秒) mysql> test.tbl(name) に挿入し、test.tbl から name を選択します。 クエリは正常、1 行が影響を受けました (0.00 秒) 記録: 1 重複: 0 警告: 0 ... mysql> test.tbl(name) に挿入し、test.tbl から name を選択します。 クエリは正常、2097152 行が影響を受けました (24.84 秒) レコード: 2097152 重複: 0 警告: 0 mysql> コミット; クエリは正常、影響を受けた行は 0 行 (7.90 秒) アンドログが拡大し始めたのがわかります!トランザクションがコミットされた後、スペースは再利用されません。 $ du -sh 元に戻す* 10M 元に戻す001 69M 元に戻す002 10M 元に戻す003 2 MySQL5.7 5.7 オンラインでの UNDO 表領域の切り捨てを導入 2.1 関連パラメータ 必要条件:
起動パラメータ:
2.2 洗浄工程
2.3 パフォーマンスに関する推奨事項 表領域を切り捨てるときにパフォーマンスの低下を回避する最も簡単な方法は、UNDO 表領域の数を増やすことです。 2.4 大規模トランザクションのテスト 8 つの UNDO テーブルスペース、innodb_purge_rseg_truncate_frequency=10 を設定します。 mysqld --initialize ... --innodb_undo_tablespaces=8 テストを開始 mysql> '%undo%' のようなグローバル変数を表示します。 +--------------------------+-------------+ | 変数名 | 値 | +--------------------------+-------------+ | innodb_max_undo_log_size | 1073741824 | | innodb_undo_directory | ./ | | innodb_undo_log_truncate | オン | | innodb_undo_logs | 128 | | innodb_undo_tablespaces | 8 | +--------------------------+-------------+ mysql> @@innodb_purge_rseg_truncate_frequency を選択します。 +----------------------------------------+ | @@innodb_purge_rseg_truncate_frequency | +----------------------------------------+ | 10 | +----------------------------------------+ @@innodb_max_undo_log_size を選択します。 +----------------------------+ | @@innodb_max_undo_log_size | +----------------------------+ |10485760| +----------------------------+ mysql> テーブル test.tbl( id int primary key auto_increment, name varchar(200) ) を作成します。 クエリは正常、影響を受けた行は 0 行 (0.03 秒) mysql> トランザクションを開始します。 クエリは正常、影響を受けた行は 0 行 (0.00 秒) mysql> test.tbl(name) に値を挿入します(repeat('1',00)); クエリは正常、1 行が影響を受けました (0.00 秒) mysql> test.tbl(name) に挿入し、test.tbl から name を選択します。 クエリは正常、1 行が影響を受けました (0.00 秒) 記録: 1 重複: 0 警告: 0 ... mysql> test.tbl(name) に挿入し、test.tbl から name を選択します。 クエリは正常、2097152 行が影響を受けました (24.84 秒) レコード: 2097152 重複: 0 警告: 0 mysql> コミット; クエリは正常、影響を受けた行は 0 行 (7.90 秒) UNDO表領域は100MB以上に拡張した後、正常に回復されました。
3 参考文献 https://dev.mysql.com/doc/ref... 要約する 以上がこの記事の全内容です。この記事の内容が皆様の勉強や仕事に何らかの参考学習価値をもたらすことを願います。123WORDPRESS.COM をご愛顧いただき、誠にありがとうございます。 以下もご興味があるかもしれません:
|
<<: Webpack5-react スキャフォールディングをゼロから構築するための実装手順 (ソースコード付き)
>>: Linux でユーザーにルート権限を追加する方法の概要
1. 現在のホスト名を表示する [root@fangjian ~]# ホスト名ctl 静的ホスト名:...
フレームセット ページは通常の Web ページとは多少異なります。依然として <HTML>...
Zhihu Discovery コラムのタイトル画像は、通常、以下のように表示されます。明らかに、グ...
状況は以下のとおりです: (PS: 赤いボックスは iframe 領域を表し、灰色の四角形は上記の ...
1. kvm仮想化をインストールする : : : : : : : : : : : : : : : :...
Yum (フルネームは Yellow dog Updater, Modified) は、Fedora...
key_lenの意味MySQL では、次に示すように、explain を使用して SQL ステートメ...
ステップ1: MySQL YUMソースを取得するMySQLの公式サイトにアクセスして、RPMパッケー...
最近、イントラネットポータルを修正していたときに、フィルターを使用する必要がある箇所に遭遇しました。...
Navicat クライアントを通じてデフォルトの日時値を変更する際に問題が発生しました。データベース...
1. 単一の矢印への複数の呼び出し単一の矢印を実装したら、二重矢印を実装するのは簡単です。上では、単...
目次背景問題分析1. 属性値はJson形式であり、Json操作関数を使用して処理する必要があります。...
目次1. バブルソートとは何か2. 例を挙げるラウンド1:第2ラウンド:第3ラウンド:第4ラウンド:...
まとめ:以下のように、CSS で指定した行にマウスを置いたときに行全体の色を変更する方法を示します。...
VMに慣れた後、BOXに切り替えるのは少し異なります。たとえば、コピーネットワークカードを2枚使って...