人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

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

●質問者: redara
●カテゴリ:インターネット ウェブ制作
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● きゃづみぃ
●50ポイント

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

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

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

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


2 ● うぃんど
●50ポイント ベストアンサー

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

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

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

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

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


redaraさんのコメント
処理速度は優先度的にそれほど高くないので、PHPの方が使い勝手が良さそうだと思いました。
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ