Rumah >pangkalan data >tutorial mysql >Mengapa saya mendapat 'Ralat semasa menghantar paket QUERY' apabila memasukkan data besar ke dalam pangkalan data MySQL?

Mengapa saya mendapat 'Ralat semasa menghantar paket QUERY' apabila memasukkan data besar ke dalam pangkalan data MySQL?

Barbara Streisand
Barbara Streisandasal
2024-11-26 18:14:11909semak imbas

Why am I getting the

Menyelesaikan masalah "Ralat semasa menghantar paket QUERY"

Semasa cuba memasukkan data ke dalam pangkalan data, anda mungkin menghadapi "Ralat semasa menghantar paket QUERY." Mari kita mendalami isu dan penyelesaiannya.

Kod yang disediakan menggunakan PDO untuk menyediakan dan melaksanakan pertanyaan untuk memasukkan data ke dalam lajur yang ditakrifkan sebagai teks panjang. Walau bagaimanapun, ralat menunjukkan bahawa saiz data melebihi had.

MySQL mengenakan sekatan pada saiz maksimum paket data yang boleh dihantar semasa pertanyaan. Secara lalai, had ini ialah 16MB. Teks panjang secara teorinya harus menyokong data sehingga 4GB.

Isu timbul apabila data yang dimasukkan lebih besar daripada saiz paket yang dibenarkan. MySQL menghantar data dalam paket, dan jika paket tidak dapat menampung keseluruhan data, ia mengakibatkan "Ralat semasa menghantar paket QUERY."

Penyelesaian:

Untuk menyelesaikan masalah ini, anda mempunyai dua pilihan:

  1. Pecahkan pertanyaan kepada lebih kecil ketulan: Bahagikan data yang berlebihan kepada berbilang sisipan. Setiap sisipan hendaklah dalam had saiz paket yang dibenarkan.
  2. Tingkatkan saiz paket_maks_allowed: Jalankan arahan berikut untuk meningkatkan saiz paket maksimum:
SET GLOBAL max_allowed_packet=524288000;

Arahan ini menetapkan saiz max_allowed_packet kepada 500MB, yang sepatutnya mencukupi untuk kebanyakan senario. Ingat untuk menetapkan semula nilai kepada lalai selepas memasukkan data untuk mengelakkan sebarang potensi overhed prestasi.

Atas ialah kandungan terperinci Mengapa saya mendapat 'Ralat semasa menghantar paket QUERY' apabila memasukkan data besar ke dalam pangkalan data MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn