トランザクションログの設定

 InnoDBの大きな特徴に,トランザクション機能がある。トランザクションの結果は,トランザクションログに格納され,万が一のクラッシュが発生した場合には,リカバリーに活用される。トランザクションログは,トランザクションがコミットされると書き込まれるので,更新頻度が高いデータベースでは大量のログが記録される。

図9●トランザクションログ構成

 トランザクションログは,2つの以上のファイルをローテーションして使用するようになっている。

 例えば,/usr/local/var/ディレクトリに100MBのトランザクションログを3つ作成する場合には,図10のように設定する。

図10●トランザクションログの設定例

innodb_log_group_home_dir = /usr/local/var/
innodb_log_file_size = 100M
innodb_log_files_in_group = 3

 なお,既にトランザクションログが存在していて,innodb_log_file_sizeの設定値の方が大きい場合,サイズアンマッチでInnoDBが起動しないので注意が必要だ。

 トランザクションログは,サイズを大きくすることによって,ローテーション(チェックポイント)の発生回数を減らすことが可能だ。トランザクションログのデフォルトは,10MBが2個であるから,大量のデータ更新を行う場合などは拡大することを薦める。

■著者紹介 佐藤栄一(さとうえいいち)
ゼンド・ジャパン株式会社 アーキテクト MySQL担当。PHPのコア技術者が設立したイスラエルZend Technologiesと提携関係にあり,Zend製品の販売,サポートおよびLAMPおよびLAPPによるシステム構築を推進しているMySQL ABのリセーラとしてライセンス,サポート,コンサルティングの提供を行っている。

この先は会員の登録が必要です。今なら有料会員(月額プラン)登録で5月末まで無料!