PHPでサイトを運営しています

データ移行やデータ操作を行うバッチプログラムをPHPで書こうと思ったのですが、
DBのストアドプロシージャで書く方が一般的なのでしょうか。
PHPでも同等のことが書けると思っているのですが、ストアドプロシージャを使って書くメリットはどんなことが挙げられるでしょうか

回答の条件
  • 1人5回まで
  • 登録:
  • 終了:2012/06/19 13:22:54
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:windofjuly No.2

回答回数2625ベストアンサー獲得回数1149

ポイント50pt

大掛かりなバックアップなどは、
そのデータベース用に用意されている専用ツールをバッチ起動しますね。

「処理速度が 速くなる」という回答がありますが、
phpからデータベースに対してSQLを投げてしまえば、
どのみちデータベース側の処理となりますので、
最近のサーバーであれば差はほとんど出てこなかったりします。
早さを問題視するならば専用ツールを検討すべきですから、
ストアドを選ぶ理由としては弱いものです。

逆に、phpなどを使う利点としては、
状況にあわせてSQLそのものを書き換えるなども容易であり、
さらにはトラブル時にメール送信するといったような仕組みまでも、
自由に構築しやすいってところにあります。

ストアドでもトラブルに対してはログを見るようにすればいいのですが、
直感的ではありませんし、データベース操作に長けている人でも、
データベースの運用管理に長けているとは限りませんので判り辛いでしょう。
(レンタルサーバーなんかだとログを見れない場合も多かったりしますよね)

ちょっと長くなりましたが、
一般的というならば「バックアップ用のツールを使う」が返答になるでしょう。
次に、phpなどからSQLを投げる方法。
最後に、ストアド登録しておいてバッチ起動あるいはphpなどから呼び出す方法。

id:redara

処理速度は優先度的にそれほど高くないので、PHPの方が使い勝手が良さそうだと思いました。

2012/06/19 13:22:10

その他の回答1件)

id:taknt No.1

回答回数13539ベストアンサー獲得回数1198

ポイント50pt

処理速度が 速くなるということです。

いちいち PHP側と データのやりとりをしなくてすみますので
当然ながら その分 速くなります。

また PHP側のプログラムを作らなくてすむというメリットがあります。

PHP側で作るにしても まず DB上で 動くものを作ってから PHP側のインターフェースみたいな箇所の作成となりますからね。

id:windofjuly No.2

回答回数2625ベストアンサー獲得回数1149ここでベストアンサー

ポイント50pt

大掛かりなバックアップなどは、
そのデータベース用に用意されている専用ツールをバッチ起動しますね。

「処理速度が 速くなる」という回答がありますが、
phpからデータベースに対してSQLを投げてしまえば、
どのみちデータベース側の処理となりますので、
最近のサーバーであれば差はほとんど出てこなかったりします。
早さを問題視するならば専用ツールを検討すべきですから、
ストアドを選ぶ理由としては弱いものです。

逆に、phpなどを使う利点としては、
状況にあわせてSQLそのものを書き換えるなども容易であり、
さらにはトラブル時にメール送信するといったような仕組みまでも、
自由に構築しやすいってところにあります。

ストアドでもトラブルに対してはログを見るようにすればいいのですが、
直感的ではありませんし、データベース操作に長けている人でも、
データベースの運用管理に長けているとは限りませんので判り辛いでしょう。
(レンタルサーバーなんかだとログを見れない場合も多かったりしますよね)

ちょっと長くなりましたが、
一般的というならば「バックアップ用のツールを使う」が返答になるでしょう。
次に、phpなどからSQLを投げる方法。
最後に、ストアド登録しておいてバッチ起動あるいはphpなどから呼び出す方法。

id:redara

処理速度は優先度的にそれほど高くないので、PHPの方が使い勝手が良さそうだと思いました。

2012/06/19 13:22:10
  • id:taknt
    ストアドといっても ループして SQLを実行したりするので、それらを PHP側で やるのと 比較すればいいでしょう。

    特にデータ移行の場合は、移行させるための処理が 必要となると思いますしね。

    単純に移行なら いいですけど。

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

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

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

回答リクエストを送信したユーザーはいません