DBからデータを読み込んでテキストファイルを書き出し、別のサーバにファイルを保存したいと思います。


これをするための方法として、
FTPでファイルを移動させるのと、元サーバから別サーバのプログラムを呼び出して、別サーバ上でファイルを生成するのはどちらが負荷などの面でいいのでしょうか?

トランザクションのことを考えると後者かと思いますがどうでしょうか?

ちなみに、後者の場合、別のサーバのphpを元のサーバのphp内から呼んだりできるものなのでしょうか?

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2007/01/11 01:40:27
  • 終了:2007/01/11 08:29:47

回答(2件)

id:b-wind No.1

b-wind回答回数3344ベストアンサー獲得回数4402007/01/11 01:49:53

ポイント28pt

別サーバーに生成するのが「ファイル」で有るなら大差ないように思います。


ただ、データ量が多く生成に時間がかかるようなら一旦元サーバー内でファイル化してしまい、FTP 等で転送する方がトランザクションの実行時間を少なく出来、好ましいです。


また、php から別の php を呼び出す事は可能ですが、HTTP 経由になりますので、あまりデータ量が多かったり時間のかかる処理だと容量オーバーやタイムアウトの可能性が出てきます。


一回のやり取りで行われるデータ量がどの程度かにも寄りますね。

http://q.hatena.ne.jp/1168447223

id:dingding

データ量は大きくても3kくらいのものです。

FTPの場合、元サーバでファイル作成→FTP→別サーバでファイル上書き→元サーバのファイル削除という流れになるのでしょうか?

この流れが結構重めなのかなと思っていました。

2007/01/11 01:56:22
id:b-wind No.2

b-wind回答回数3344ベストアンサー獲得回数4402007/01/11 02:17:11

ポイント42pt

FTPの場合、元サーバでファイル作成→FTP→別サーバでファイル上書き→元サーバのファイル削除という流れになるのでしょうか?

この流れが結構重めなのかなと思っていました。

イメージとしてはそんな感じだと思います。

たしかに、全体の処理は多くなりますね。


でも、実際に問題となるのはDBのトランザクション負荷ぐらいでしょう。

ファイルへの書き出しが完了した時点でDBは開放されるので、後の処理はどれだけ時間がかかろうがそうたいした問題にはならないことが多い。

大抵のDBでローカルへの直接書き出しコマンドが用意されているのもポイントです。バッファを経由しない事でアプリケーション越しにアクセスするより圧倒的に高速な事もあるので。

自分なら元サーバーのDBをどれだけ早く開放してやるかに重点を置きます。

もちろんその他の条件があるなら変わってくるかもしれませんが。

http://q.hatena.ne.jp/1168447223

id:dingding

なるほど。dbの開放メインで考えるといいんですね。とても参考になります。ありがとうございました。

2007/01/11 08:24:49

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません