MySQL データベースに大きなデータを挿入すると、「QUERY パケットの送信中にエラーが発生しました」というメッセージが表示されるのはなぜですか?

Barbara Streisand
リリース: 2024-11-26 18:14:11
オリジナル
842 人が閲覧しました

Why am I getting the

「QUERY パケット送信中のエラー」のトラブルシューティング

データベースにデータを挿入しようとすると、「QUERY パケット送信中のエラー」が発生する場合があります。問題とその解決策を詳しく見てみましょう。

提供されたコードは PDO を利用して、ロングテキストとして定義された列にデータを挿入するクエリを準備および実行します。ただし、このエラーは、データ サイズが制限を超えていることを示唆しています。

MySQL では、クエリ中に送信できるデータ パケットの最大サイズに制限が課されています。デフォルトでは、この制限は 16MB です。長文は理論的には最大 4GB のデータをサポートする必要があります。

この問題は、挿入されるデータが許可されたパケット サイズより大きい場合に発生します。 MySQL はデータをパケットで送信します。パケットがデータ全体を収容できない場合、「QUERY パケットの送信中にエラーが発生しました。」

解決策:

解決するにはこの問題には 2 つのオプションがあります:

  1. クエリをより小さいものに分割するchunks: 過剰なデータを複数の挿入に分割します。各挿入は、許可されたパケット サイズ制限内である必要があります。
  2. max_allowed_pa​​cket サイズを増やします: 次のコマンドを実行して、最大パケット サイズを増やします:
SET GLOBAL max_allowed_packet=524288000;
ログイン後にコピー

このコマンドは max_allowed_pa​​cket サイズを 500MB に設定します。これはほとんどのシナリオで十分です。潜在的なパフォーマンスのオーバーヘッドを回避するために、データを挿入した後は必ず値をデフォルトにリセットしてください。

以上がMySQL データベースに大きなデータを挿入すると、「QUERY パケットの送信中にエラーが発生しました」というメッセージが表示されるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート