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

MySQLとC#で通信すると接続が切れる。

MySQL5.5.15とC#で開発しています。
10000個のテーブルに一つずつデータを書き込みたいと思っています。
MySqlCommand cmd = new MySqlCommand("insert ?", conn);
cmd.ExecuteNonQuery();
上記コードを10000回走らせています。

ですが、かなりの頻度で「接続が予期せず閉じられました」と途中で止まってしまいます。
それぞれテーブルが違うのでまとめてクエリを送信することもできず、またオートコミットをOFFにして100クエリずつcommitしましたが症状は改善されませんでした。
またたまに成功したとしても20秒ほどかかりとても遅いのではないかと思います。

どうすれば改善できますか。よろしくお願いします。

●質問者: after_333sec
●カテゴリ:コンピュータ
✍キーワード:C# MySQL クエリ コミット コード
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● じゅぴたー
●100ポイント

>20秒ほどかかりとても遅いのではないかと思います。

そんなことはありません。

1台のPCで1万個のテーブル相手に書き込みをしようとすると、分単位の時間はかかります。

最適化の必要があると思いますが、その前に確認です。

ループ処理は以下のようにopen/closeを繰り返していますか?


MySqlCommand cmd = new MySqlCommand("insert ?", conn);
myConnection.Open();
cmd.ExecuteNonQuery();
cmd.Connection.Close();
◎質問者からの返答

ご回答ありがとうございます。

一つのテーブルに10000レコードと、10000個のテーブルに一つずつでは全く違うのですね。

open/closeは最初と最後の一回のみです。

関連質問


●質問をもっと探す●



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