DBが結構なボリュームに

1000万行を超えました。いや、ナカナカのボリュームに。これ、処理するとなるとそれなりに効率やチューニング考えないといけない。いや、いい勉強のネタができた。

で、ちょっと心配なのは表結合するようなクエリを走らせるとディスク読むそぶりも見せずにCPU利用率が100%になってまともな操作ができなくなること。これ放置してたらちゃんと結果かえってくるのかな? 今まで5−6回これではまって、なんとかシャットダウンさせたけど、一度2−3時間放置しといてみるか。
いや、EXPLAINで何しようとしてるか調べてみたほうがいいかもな。
・・・EXPLAINしてみたけど、そんな怪しげな感じはしなかった。ちゃんとINDEX使おうとしてる。

で、単純で返す行数が少ないクエリに変更して動かすと動くんだこれが。で、WHERE句調整して、返す行数少なくすると元のクエリでもちゃんと動く事が判明。どうも莫大な行数返すようなクエリに耐えられない模様。中ぐらいの量にするとやっぱ20−30秒ぐらいCPU利用率が100%になってた。ううううううむ。しょうがない。WHERE句を調整したクエリを作って、順次prepare、executeをメインループのなかでやらせるか。なんかちょっとバカっぽいな;;