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