mysql:14405
From: Imanari Toshiharu <Imanari Toshiharu <zbg29998@xxxxxxxxxx>>
Date: Thu, 06 Mar 2008 17:43:56 +0900
Subject: [mysql 14405] Re: 別DBへのバックアップ方法
こんにちは。今成です。 > いろいろ考えてみましたが、 > そもそも、データを挿入する段階で、両方にインサートした方がよさそうです > ね。。 たぶんそれが良いと思います。その旨、返答するつもりでした。 一つツッコミを入れさせてください。 > 「mysql_connect」と「mysql_select_db」を、データベース B に繋ぎ直して、 mysql_connectでのつなぎ直しは今回の事例では不要です。mysql_connectでの再 接続が必要になるのは、MySQLサーバのインスタンスが別々である場合です。 データベースへのコネクション確立はリソースを消費する以外にも時間がかかる 作業であり、使い回せるならばなるべく使い回すほうがよい、と多くの書籍に書 かれています。 さらに、mysql_select_dbも必ずしも必要ではなかったように思います。具体的 には次のようになると思います。 $link = mysql_connect( "localhost", "XXXX", "YYYY" ); mysql_query("insert into A.X values( ・・・ mysql_query("insert into B.X values( ・・・ あと、インサート処理がビジネスロジックの一カ所で済む場合は、両方のテーブ ルにインサートするという方法で良いのですが、複数箇所でインサートしたり、 PHP以外からもインサートすることが想定されるならば、PHPでの処理をあきらめ てMySQLサーバ側で処理することになると思います。ちょっと前のMLでも話題に なりましたが、トリガという機能を使います。 yahoomail さんは書きました: > shinです。自己レスです。 > > > いろいろ考えてみましたが、 > そもそも、データを挿入する段階で、両方にインサートした方がよさそうです > ね。。 > > > 一度、データベース A の テーブル X にデータをインサートした後、 > 「mysql_connect」と「mysql_select_db」を、データベース B に繋ぎ直して、 > 同じデータを、データベース B のテーブル X にもインサートすると > いう事で行こうと思います。 > > $link = mysql_connect( "localhost", "XXXX", "YYYY" ); > $db_selected = mysql_select_db('A'); ← データベース A > > 〜〜〜処理〜〜〜 > > $link = mysql_connect( "localhost", "XXXX", "YYYY" ); > $db_selected = mysql_select_db('B'); ← データベース B > > 〜〜〜処理〜〜〜 > > ご指摘がありましたら、教えて頂けるとありがたいです。 > > 以上、お騒がせしました。 > > ----- Original Message ----- From: "yahoomail" <js6drm@xxxxxxxxxx> > To: <ml@xxxxxxxxxx> > Sent: Thursday, March 06, 2008 1:28 PM > Subject: [mysql 14403] Re: 別DBへのバックアップ方法 > >
14399 2008-03-06 10:53 ["yahoomail" <js6drm@] 別DBへのバックアップ方法 14401 2008-03-06 11:27 ┣[c-atwork <ml@xxxxxxx] 14402 2008-03-06 11:29 ┗[今成利晴 <zbg29998@x] 14403 2008-03-06 13:28 ┗["yahoomail" <js6drm@] 14404 2008-03-06 14:21 ┣["yahoomail" <js6drm@] -> 14405 2008-03-06 17:43 ┃┗[Imanari Toshiharu <z] 14406 2008-03-06 18:08 ┗[Shima Shizuo <r6@xxx] 14412 2008-03-13 10:05 ┗["yahoomail" <js6drm@] Re: 別DBへのバックアップ方法(お礼)