Documentation Home
MySQL 5.6 リファレンスマニュアル
Download this Manual
PDF (US Ltr) - 27.1Mb
PDF (A4) - 27.2Mb
HTML Download (TGZ) - 7.2Mb
HTML Download (Zip) - 7.2Mb


MySQL 5.6 リファレンスマニュアル  /  ...  /  個別のテーブルスペースへの InnoDB Undo ログの格納

14.5.6 個別のテーブルスペースへの InnoDB Undo ログの格納

MySQL 5.6.3 以降は、システムテーブルスペースを除く 1 つ以上の個別の Undo テーブルスペースInnoDBUndo ログを格納することができます。このレイアウトは、Undo ログが システムテーブルスペースの一部であるデフォルト構成とは異なります。Undo ログの I/O パターンにより、これらのテーブルスペースは SSD ストレージへの移動に適した候補になります。一方、システムテーブルスペースはハードディスクストレージに維持します。ユーザーは、InnoDB の Undo ログを保持するために作成された個々のテーブルスペース、およびそのテーブルスペース内の各セグメントを削除できません。

これらのファイルで、システムテーブルスペース内で以前に実行された I/O 操作を処理するため、これらの新しいファイルを加えるように、システムテーブルスペースの定義を拡張します。

Undo ログはロールバックセグメントとしても知られています。

この機能には、次の新しい構成オプションまたは名前の変わった構成オプションが含まれます。

  • innodb_undo_tablespaces

  • innodb_undo_directory

  • innodb_rollback_segmentsinnodb_undo_logs になります。互換性のため、古い名前も使用できます。

InnoDBUndo ログ機能には 2 つの非動的起動変数 (innodb_undo_tablespaces および innodb_undo_directory) の設定を伴うため、この機能は MySQL インスタンスを初期化する場合にのみ有効化できます。

使用上の注意

この機能を使用するには、次の手順に従います。

  1. Undo ログを保持するパスを決めます。MySQL 構成ファイルまたは起動スクリプトにある innodb_undo_directory オプションの引数としてそのパスを指定します。

  2. innodb_undo_logs オプションにゼロでない開始値を指定します。比較的小さい値から始めて、パフォーマンスの効果を調べて徐々に値を増やすことができます。

  3. innodb_undo_tablespaces オプションにゼロでない値を指定します。innodb_undo_logs 値で指定された複数の Undo ログは、この数の個々のテーブルスペース (.ibd ファイルで指定) に分割されます。この値は、MySQL インスタンスが有効である間は固定されるため、最適値が確かでない場合は、どちらかというと高く見積もります。

  4. 構成ファイルまたは MySQL 起動スクリプトで選択した値を使用して、新しい MySQL インスタンスを作成します。本番サーバーに類似したデータ量の現実的なワークロードを使用します。また、トランスポータブルテーブルスペース機能を使用して、既存のデータベースのテーブルを新しく構成した MySQL インスタンスにコピーします。詳細は、セクション14.5.5「テーブルスペースの別のサーバーへのコピー (トランスポータブルテーブルスペース)」を参照してください。

  5. I/O が多いワークロードのパフォーマンスのベンチマーク。

  6. 繰り返し、innodb_undo_logs の値を増やして、パフォーマンステストをやり直します。I/O パフォーマンスゲインが停止する値を見つけます。

  7. これらのオプションに理想的な設定を使用して、新しい本番インスタンスを配備します。レプリケーション構成でスレーブサーバーとして設定するか、以前の本番インスタンスからデータを移動します。

パフォーマンスおよびスケーラビリティーに関する考慮事項

Undo ログを個々のファイルに保持すると、MySQL チームはこのトランザクションデータに関連した、I/O とメモリーの最適化を実装できます。たとえば、Undo データはディスクに書き込まれ、その上まれにしか使用されないため (クラッシュリカバリの場合にのみ)、ファイルシステムのメモリーキャッシュに保持しておく必要がなく、その結果、より多くのシステムメモリーを InnoDBバッファープール に割り当てることができます。

InnoDB システムのテーブルスペースをハードドライブに保持し、テーブルごとのテーブルスペースを SSD に移動するという、典型的な SSD ベストプラクティスは、Undo 情報を個々のテーブルスペースファイルに移動することで役に立ちます。

内部情報

物理的なテーブルスペースファイルの名前は undoN です。ここで、N はスペース ID (頭のゼロを含む) です。

現在、個々の Undo テーブルスペースを含む MySQL インスタンスは、MySQL 5.5 や 5.1 などの以前のリリースにはダウングレードできません。


User Comments
Sign Up Login You must be logged in to post a comment.