とりあえず終了!

明日と明後日はお休みだ!とは言うものの明日は鯖管もSE級の人間も居ないので、オフサイト対応の予定。


俺の管理してるサーバたちは、一応DBだとかWebサーバが落ちたら携帯にメールするようにしてるんだけど、今日、一件だけDBがらみで飛んできた。
slowログみたら、恐ろしいことしてるSQLが大体300秒〜400秒かかってて、担当エンジニアが居なかったから、そいつと一緒に組んでるエンジニア捕まえてみたところ、「単純な方が早いに決まってるじゃない。」と、チューニング提案をそいつははねつけ続けてたみたい。いや、説得できない方も知識や押しが足りんのだろうが…。それにしてもしかし。
それにしてもしかし、俺は言いたい。


WHERE句に条件を何万個も並べるな!そんなSQL文が速い訳ないだろ!激遅だよ!サーバ落ちて迷惑するのは俺だよ!しかも、「key != value」というのが山のように並んでた!「!=」ってところがヤバさ倍増!
とりあえずmysqlでMINUS使えないとか、サブクエリー弱いとかは実は今日初めて知ったんだけど、外部結合でNULL引っ掛けるという方法を提示してみた。
大体、2秒ぐらいで終わるようになった。
メモリに展開されるデータ量を減らすのがチューニングの基本なんだけど、そういった部分も教育していかんとダメなんだねえ。


なんか、意図しなかったところで、新年の抱負みたいな感想を覚えた正月休み中のオンサイト対応だったよ。