2009-12 << 2010-01 >> 2010-02

2010-01-19 (火)

*SQLと戯れる日々

MySQLのINが遅い.一つのSQLにまとめたほうが早いだろうと,INの中にたくさん書いたら遅かったので,スクリプトで処理して複数のSQLに分けたら半分以下の時間で終わった.それでも10分くらい待たされますが.もしかしたら,INで検索した結果をさらにJOINしていたのが原因だったかも.

システムの負荷試験とかで,いろいろ嵌り始めたので,少しはDBの知識も必要だと感じてきた.MySQLの細かいところを少し勉強しておきたい.InnoDBのNext-key lockアルゴリズムとかも一見単純な処理がデッドロックするのを見て初めて知った.かなり危うい感じですが,幸いにも,DBに詳しい人が周りにいるのでたぶん大丈夫でしょう.

そもそもSQLやDBがもう少し賢ければ,ここまで面倒なことにはならない気がする.

トリガとかストアドプロシージャとかも便利そうだけど,あまり詳しい説明が見当たらないなぁ.トリガーが有効化されるとき,SQL文がアトミックなのかどうかも説明を見ただけではまだ分からない.

2009-12 << 2010-01 >> 2010-02