hixの日記: 構造的破綻を大いに語る
日記 by
hix
# 半ば覚書エントリ
ApacheのログをDB(MySQL)に突っ込んで、解析というか色々表示したりするようなCGIを書いたのだけれど、全然使えないのである。
遅い。SQL文の処理が2分とか平気で掛かる。
マニュアルのSHOW STATUSの項では、
ApacheのログをDB(MySQL)に突っ込んで、解析というか色々表示したりするようなCGIを書いたのだけれど、全然使えないのである。
遅い。SQL文の処理が2分とか平気で掛かる。
マニュアルのSHOW STATUSの項では、
上記のステータス変数にはそれぞれ以下のような意味があります。
略
Handler_read_key -- キーに基づくレコード読み取り要求の回数。この値が大きい場合、クエリおよびテーブルが適切にインデックス化されていると考えられる。
と書かれてあるが、SQL文を幾ら処理しても、この値が0から動かない。不動の変数である。
色々とwebを漁っていたらこの文書に辿り着いた。
MySQLにクエリを投げる場合、Explainして最も見たくないのがUsing file sortの文字だ。
見たくない「Using file sort」が出ていました。バッチリ。
インデックスの構造を変えて、SQL文を見直し、EXPLAINを掛けた時に「Using file sort」が出ない状態まで持っていったのだが、やっぱり遅い。
今の処理をばっさり捨てて、表示の元となるデータは事前にバッチ処理して用意しておかないとダメだという事だな。
その必要性は想定していなかった訳ではないが、どういった操作をされるのかを検討したり、新しいデータ構成を設計したり、それに基づいて新たな操作系を形成しなおしたりするのは、思ったより面倒だなと思う。
構造的破綻を大いに語る More ログイン