2

(MySQL コマンドライン フロントエンドを使用して) MySQL サーバーへのリモート接続を確立した後、非常に長いストアド プロシージャの実行を開始しましたが (7 時間以上かかると推定されます)、途中でエラーを受け取りました。 :

エラー 2013 (HY000): クエリ中に MySQL サーバーへの接続が失われました

したがって、クエリがタイムアウトしたと思います。この手順では、以前は空のテーブルにいくつかの値を格納するだけです。

このエラーを受け取り、サーバーへの接続を再確立した後、手順が何らかの形で実行を継続していることを確認できました。そしてしばらくして、以前は空のテーブルにいくつかの行が含まれていることも確認しました。

私の質問は、接続が失われた場合でも、手順の実行が正しいと信頼できますか?

4

1 に答える 1

0

まず、7時間は長すぎます。不完全な結果が気になる場合は、N 個のクエリが完了したときにセーブ ポイントを追加し、N 個のクエリを 1 つのトランザクションに結合できます。その後、手順が例外的に停止するたびに、最後に保存したポイントをロードできます。

また、ローカル PC にソース データを選択し、スクリプトを作成して結果を取得し、それをターゲット テーブルにアップロードすることもお勧めします。これにより、db サーバーのオーバーヘッドが削減されます。

于 2012-04-22T02:04:57.533 に答える