時間がかかるクエリとプログラミング
テーブル構造は単純なんだけど、DB のデータ量が膨大なため、クエリに時間がかかる結果となっている。例えば、
SELECT * FROM table WHERE name = 'A' AND date = '2006-06-29';
とやった場合に10秒かかるとする。
実際に取得したいデータは name = 'A' のものだけではなく、B や C や D のも取り出したい。現状、この DB にアクセスするプログラムでは、取り出したい name の数だけクエリしているため、name の数が増えれば増えるほど時間がかかってしまう。
でも、
SELECT * FROM table WHERE date = '2006-06-29';
とやった場合も同じく10秒くらいでクエリが完了する。だから、わざわざ WHERE句で name を指定しないで、全部の name に対するデータを取得すればどうか。そして、データを受け取ったプログラム側で name に対してフィルタリングすりゃいいじゃん、なんて思うのだけど、こういうやり方ってなんかまずいことあるんだろうか?
おしえて>えらい人