ホームページ >データベース >mysql チュートリアル >大規模なデータセットを処理するときに発生する「クエリ中に MySQL サーバーへの接続が失われました」エラーを修正する方法

大規模なデータセットを処理するときに発生する「クエリ中に MySQL サーバーへの接続が失われました」エラーを修正する方法

Susan Sarandon
Susan Sarandonオリジナル
2025-01-04 05:38:38851ブラウズ

How to Fix

「クエリ中に MySQL サーバーへの接続が失われました」エラーを処理する方法

非常に大規模なデータセットを操作する場合、「MySQL サーバーへの接続が失われました」というエラーが発生することがよくあります問い合わせ中。」このエラーはデータ行の反復中に発生し、接続が失われ、最後に実行された SQL クエリの位置が不明瞭になります。

改善されたコード サンプル

この問題に対処するために、次のコード サンプルは次のコード サンプルを利用します。 MySQLdb ライブラリの SSCursor。クエリ失敗時の自動再接続をサポートします。

import MySQLdb

class DB:
    conn = None

    def connect(self):
        self.conn = MySQLdb.connect(
            "hostname", "user", "*****", "some_table", cursorclass=MySQLdb.cursors.SSCursor
        )

    def query(self, sql):
        cursor = self.conn.cursor()
        cursor.execute(sql)
        return cursor

#
db = DB()
sql = "SELECT bla FROM foo"
data = db.query(sql)

for row in data:
    do_something(row)

トラブルシューティングヒント

エラーが解決しない場合は、この特定のエラーに関する MySQL ドキュメントを参照してください。考えられる原因は次のとおりです。

  • クエリが正しくないか、サイズが大きすぎます。 クエリが大きすぎるか、エラーが含まれていると、接続が終了する可能性があります。サーバーの max_allowed_pa​​cket 変数を増やし、クライアント側のパケット サイズを調整すると、この問題が解決される可能性があります。
  • 警告: --log-warnings=2 オプションを指定して MySQL を起動すると、次の情報を含むログ ファイルが生成されます。切断エラー。これにより、問題の原因をさらに詳しく知ることができます。

以上が大規模なデータセットを処理するときに発生する「クエリ中に MySQL サーバーへの接続が失われました」エラーを修正する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。