5796 読み取り待ちを解消するInnoDB はくぶん 2014-06-24 04:06:25
トランザクションなんて、俺のシステムには関係ないと思っていた。
人気サイトで、訪問者が一日に数万や数億という規模なら有用だろうが、たかだか数千の俺のサイトには必要ないだろうと思っていた。
しかし、必要な箇所もあることに気が付いた。
この掲示板ではカウンターログを取っている。
一時間以内に訪問した履歴があるなら、カウンターにはカウントしないようにしている。
テーブルをMyISAMにすると、その一時間以内を調べる動作が完了するまで、カウンターへの新規書き込みも行わなければ、他の訪問者を調べることもしない。
そこにアクセスが集中すると、長い読み取り待ちの行列が発生する。
この読み取り待ちはCPUの付加を100%にし、擬似フリーズ状態、いわゆるビジー状態作り出す。
その間は、アクセスが繋がらないどころか、作業をしている俺の手まで止まってしまう。
ソフトが擬似フリーズ状態になってしまうからだ。
これを解消するのがInnoDBだった。
こんな小さなシステムでも、InnoDBの活躍する余地があったとは驚きである。
メッセージ文字数:445/456