-1

これまで、DB テーブルには約 7500 のレコードがありました。今晩、別の 4000 レコードをインポートしました (合計 10500 レコードになります)。アプリを実行すると、MySQL エラー メッセージが表示されます。

Lost connection to MySQL server during query

私のアプリでは問題になると思いましたが、PhpMyAdmin を介してクエリを実行しようとしたところ、同じエラーが発生しました。

#2013 - Lost connection to MySQL server during query

初めてこのエラーに直面しています。周りを見回したところ、大きなクエリが原因で問題が発生しているようです。これは可能ですが、テーブル内の現在のレコード数 (7500) では、クエリの実行に約 1.2 秒かかりました。では、なぜこのエラーを引き起こす別の 4000 レコードがあるのでしょうか? それを修正する方法はありますか?

また、アプリは Hostgator サーバーで実行されています。

4

2 に答える 2

1

メモリなどの db セッションの 1 つのリソースを使い果たし、mysql が接続を閉じることが原因である可能性があります。

dev.mysqlからの引用

「MySQL 5.1 サーバーまたはクライアントとの間で送受信できる最大のパケットは 1GB です。

MySQL クライアントまたは mysqld サーバーが max_allowed_pa​​cket バイトより大きいパケットを受信すると、Packet too large エラーを発行し、接続を閉じます。一部のクライアントでは、通信パケットが大きすぎると、クエリ中に MySQL サーバーへの接続が失われるというエラーが発生することもあります。」

考えられる修正:

SQL ダンプをいくつかの部分に分割し、少しずつ実行します。

テーブルが破損している場合、「optimize table #tablename」コマンドを実行すると、この問題が修正されます。

于 2012-09-20T20:50:11.293 に答える
-2

追加の 4000 レコードを削除して、データベースを引き続きクエリできるかどうかをテストしましたか?

于 2012-09-20T20:42:46.097 に答える