首頁 >資料庫 >mysql教程 >為什麼在將大數據插入 MySQL 資料庫時會收到「發送 QUERY 封包時出錯」的資訊?

為什麼在將大數據插入 MySQL 資料庫時會收到「發送 QUERY 封包時出錯」的資訊?

Barbara Streisand
Barbara Streisand原創
2024-11-26 18:14:11860瀏覽

Why am I getting the

解決「發送 QUERY 封包時出錯」

嘗試將資料插入資料庫時,您可能會遇到「發送 QUERY 封包時出錯」。讓我們深入研究該問題及其解決方案。

提供的程式碼利用 PDO 準備和執行查詢,以將資料插入定義為長文字的欄位中。但是,該錯誤表明資料大小超出了限制。

MySQL 對查詢期間可以傳送的封包的最大大小施加了限制。預設情況下,此限制為 16MB。長文本理論上應支援高達 4GB 的數據。

當插入的資料大於允許的資料包大小時,就會出現此問題。 MySQL以資料包的形式發送數據,如果資料包無法容納全部數據,則會導致「發送QUERY資料包時發生錯誤。」

解:

解決這個問題,你有兩個選擇:

  1. 將查詢分解成更小的chunks:將多餘的資料分成多次插入。每次插入應在允許的資料包大小限制內。
  2. 增加max_allowed_pa​​cket 大小:執行以下命令以增加最大資料包大小:
SET GLOBAL max_allowed_packet=524288000;

此命令將max_allowed_pa​​cket 大小設定為500MB,這足以滿足大多數情況。請記住在插入資料後將值重設為預設值,以避免任何潛在的效能開銷。

以上是為什麼在將大數據插入 MySQL 資料庫時會收到「發送 QUERY 封包時出錯」的資訊?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn