10代と話して驚いたこと

「MySQL」「PHP」、何れでも出来るような処理はどちらでやる方が良いのでしょうか?

■例1 … 取得データを正規表現で加工して利用したい場合
・SQL重視 … 正規表現等を駆使したSQLで、後々利用しやすい形で取得
・PHP重視 … 普通に取得して、PHPで正規表現を利用して加工

■例2 … データ取得がヤヤコシイ場合
・SQL重視 … (例えそれがどんなに長くなっても)SQL文をキチンと組み立て、一度にデータ取得
・PHP重視 … 簡単なSQL文で一旦データ取得後、PHPのループ文内等処理で、再度DBアクセスしデータ取得

・ちょっと例えが微妙かもしれないのですが、そもそもデータ取得する際、どのように考えるのが正しいのでしょうか?
1.なるべく利用予定に近い形でデータを取得
2.後で色々加工するかもしれないので、取得時点ではあまり加工せず、そのまま取得

※要は、頻繁にDBへアクセスしてデータ取得するより、「DBへアクセスするのは極力避け、取得したデータはなるべく使い回す」方が良いのでしょうか?
・それとも、ここら辺はケースbyケースなので、一概には言えないのでしょうか?
・あるいは、別にどっちでもいい? あまり、気にしなくても良い?

A 回答 (2件)

DBサーバとWebサーバの性能次第と言うところでしょうか。


あとは、負荷が上がってきた時にDBサーバを負荷分散させた方が楽なのか、Webサーバを負荷分散させた方が楽なのかといった事も絡んできます。
全体の構成や負荷が上がってきた時の拡張計画(予算)等々を考えて、設計していくしかないでしょう。

一昔前ならPHP自体の処理が遅かったのでSQL重視と言ったかもしれませんね。
でも、最近のバージョンならアクセラレータを使えば遅いなんて事はないし、サーバ自体が安くなってきたのでちょっといいCPUにたくさんメモリを積んでおけば処理速度は気になりません。
    • good
    • 0
この回答へのお礼

回答ありがとうございましたー

お礼日時:2013/02/11 10:25

ケースバイケースだとは思いますが、メンテナンスを考えると、複雑なSQLはメンテしにくいので、


・できるだけPHP側で処理
・SQLでやったほうがディスクアクセスが有意に減るならそっちでやる

SQLの工夫でディスクアクセスが1/10になるとして、100回か10回かならどっちでも良い。
100万回か10万回かなら、10万回を選ぶ。
インデックスとかも関係してきます。
    • good
    • 0
この回答へのお礼

回答ありがとうございましたー

お礼日時:2013/02/11 10:25

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す


おすすめ情報