mysql:14075
From: Katsuyuki Sakai <Katsuyuki Sakai <sakai@xxxxxxxxxx>>
Date: Fri, 22 Jun 2007 17:06:15 +0900
Subject: [mysql 14075] [再送]innodb_max_purge_lagについて
酒井と申します。 先ほどは変なエンコーディングでメールを送信してしまい、申し訳ござ いませんでした。 念のため再送させていただきます。 ----------------- innodb_max_purge_lagについて教えていただきたく存じます。 InnoDBはmulti-versionedストレージエンジンなので、 UPDATEやDELETEで変更された行の変更される前の古い情報を保持 しておくかと思います(あるトランザクションが変更前のデータを読む 必要性ががあるかもしれないため)。 innodb_max_purge_lagのデフォルト値は0なので、UPDATEや DELETE後MySQLは直ちにパージスレッドを走らせ、そのスレッド によって古い情報はパージされるのでしょうか?(ただし古い情報を読 む必要があるトランザクションが存在しない限り) マニュアルなどを読むと、古い情報の行数をpurge_lagとし、 purge_lagの値がinnodb_max_purge_lagの値を超えた場合、 INSERTとUPDATE、DELETEの各操作が((purge_lag/ innodb_max_purge_lag)×10)-5ミリ秒だけ遅延され、その間に パージスレッドが走る、と読めます。 http://dev.mysql.com/doc/refman/5.0/en/innodb-parameters.html http://dev.mysql.com/doc/refman/5.0/en/innodb-multi-versioning.html http://forums.mysql.com/read.php?22,122206,122800#msg-122800 パージ操作にはtablespaceなどへのディスクアクセスが伴うた め、パージ操作がボトルネックになる可能性があります。 なので、innodb_max_purge_lagのデフォルト値0ではディ スクアクセスが頻繁に起きてボトルネックになる、という考え方は正し いでしょうか? また、innodb_max_purge_lagの値を適宜増やして、後でまとめて パージ操作してもらうことでパフォーマンスアップを図るという考え方 は正しいでしょうか? ご返答のほど、よろしくお願いいたします。 -- 酒井
-> 14075 2007-06-22 17:06 [Katsuyuki Sakai <sak] [再送]innodb_max_purge_lagについて 14076 2007-06-22 17:16 ┗[Yasufumi Kinoshita <] 14077 2007-06-22 17:53 ┗["Katsuyuki Sakai" <s] 14078 2007-06-22 18:04 ┗[Yasufumi Kinoshita <]