>  기사  >  데이터 베이스  >  MySQL 데이터베이스에 대용량 데이터를 삽입할 때 'QUERY 패킷을 보내는 동안 오류'가 발생하는 이유는 무엇입니까?

MySQL 데이터베이스에 대용량 데이터를 삽입할 때 'QUERY 패킷을 보내는 동안 오류'가 발생하는 이유는 무엇입니까?

Barbara Streisand
Barbara Streisand원래의
2024-11-26 18:14:11844검색

Why am I getting the

'QUERY 패킷 전송 중 오류' 문제 해결

데이터베이스에 데이터를 삽입하려고 시도하는 동안 'QUERY 패킷 전송 중 오류'가 발생할 수 있습니다. 문제와 해결 방법을 자세히 살펴보겠습니다.

제공된 코드는 PDO를 활용하여 긴 텍스트로 정의된 열에 데이터를 삽입하는 쿼리를 준비하고 실행합니다. 그러나 이 오류는 데이터 크기가 한도를 초과했음을 나타냅니다.

MySQL은 쿼리 중에 전송할 수 있는 데이터 패킷의 최대 크기에 제한을 둡니다. 기본적으로 이 제한은 16MB입니다. Longtext는 이론적으로 최대 4GB의 데이터를 지원해야 합니다.

삽입되는 데이터가 허용된 패킷 크기보다 큰 경우 문제가 발생합니다. MySQL은 데이터를 패킷으로 전송하는데, 패킷이 전체 데이터를 수용할 수 없는 경우 "QUERY 패킷 전송 중 오류 발생"이 발생합니다.

해결 방법:

해결 방법 이 문제에는 두 가지 옵션이 있습니다.

  1. 쿼리를 더 작게 나누세요. 덩어리: 과도한 데이터를 여러 개로 나누어 삽입합니다. 각 삽입은 허용된 패킷 크기 제한 내에 있어야 합니다.
  2. max_allowed_packet 크기를 늘리십시오. 최대 패킷 크기를 늘리려면 다음 명령을 실행하십시오.
SET GLOBAL max_allowed_packet=524288000;

이 명령은 max_allowed_packet 크기를 500MB로 설정하며 이는 대부분의 시나리오에 충분합니다. 잠재적인 성능 오버헤드를 방지하려면 데이터를 삽입한 후 값을 기본값으로 재설정해야 합니다.

위 내용은 MySQL 데이터베이스에 대용량 데이터를 삽입할 때 'QUERY 패킷을 보내는 동안 오류'가 발생하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.