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 でユーザーにルート権限を追加する方法の概要
インターネットで見つけた方法は効果的ですinclude によって導入されたフッター ファイルとヘッダ...
導入Docker-Compose プロジェクトは、Docker コンテナ クラスターの迅速なオーケス...
目次1. EclipseがTomcatを構成する2. Tomcat の無効なポートの解決方法方法1:...
1. 仮想マシン側1. MySQLの設定ファイルを見つける:sudo vim /etc/mysql/...
この記事では、pycharm2017でpython3.6とmysqlを接続する方法を参考までに紹介し...
日付ピッカーをカプセル化する場合、選択時にフォントの色を暗くする必要があります。実装後の効果を見てみ...
効果は以下のとおりです。 例1 例2:例1[結婚式の計画]を例にとるHTML: <div cl...
デフォルトでは、テーブルの幅と高さはコンテンツに応じて自動的に調整されます。テーブルの幅と高さを手動...
DPlayer.jsビデオプレーヤープラグインは使いやすい主な用途: ビデオの再生、監視の開始、終了...
MySQL データベースのバージョンを 5.6.28 から 8.0.11 にアップグレード中にプロジ...
スクロール バーを下に引くと、主にposition:fixed;スタイルにより、フローティング ボッ...
この記事では、VMware Workstation14 ProにUbuntu 16.04をインストー...
この記事では、MySQL 8.0 のユーザーとロールの管理について例を挙げて説明します。ご参考までに...
.imgbox{ 幅: 1200ピクセル; 高さ: 612px; 右マージン: 自動; 左マージン...
AND キーワードを使用した MySQL 複数条件クエリ。MySQL では、AND キーワードを使用...