대량 삽입 문을 사용할 마이그레이션을 작성하고 있습니다. DB에서 특정 정보를 검색합니다. &은 특정 테이블에서 사용중인 형식으로이를 컴파일합니다. &은 아래의 INSERT 메소드를 사용하여 씁니다. 이 모든 것을 실행할 MySQL 시스템은 max_allowed_packet 크기가 16MB이며 변경할 수 없습니다.MySQL 벌크의 버퍼 크기를 결정하는 방법 INSERT
나는 이것에 상당히 새롭다. 필자는 버퍼가 16MB 미만인 버퍼를 삽입하려고 시도했습니다. 이것은 작동하지 않습니다. max_allowed_packet 크기가 16MB를 초과하면 &으로 인해 문제가 발생합니다. 그 이유는 그들이 무엇을하고 있는지를 아는 누구에게나 분명합니다 (그러나 나에게는 그렇지 않습니다).
주어진 max_allowed_packet 크기로 삽입 할 수있는 문자 수를 계산하는 방법을 알아야합니다. 우리는 INNODB 스토리지 엔진을 사용하고 있습니다.
이 더 많거나 적은 내 삽입 문처럼 보이는 것입니다 : 나는 더 많은 정보를 제공해야하는 경우
INSERT INTO _table_ (col_name1, col_name2, col_name3)
VALUES (val1, val2, val3), (val1, val2, val3), (val1, val2, val3)... etc.
알려 주시기 바랍니다. 이 시점에서 나는 무엇을해야할지 정말로 모른다.
질문을 명확히하기 위해 편집 됨. 이것은 클라이언트가 구성 설정에 대한 서버를 요청할 수 있습니다
show variables like 'max_allowed_packet';
: 내가 제공하는 링크와 웹 페이지에 사용자 의견을 읽기는
예 MySQL 클라이언트/서버의 max_allowed_packet 크기는 기본적으로 16MB이지만 구성 가능합니다 . 이것은 my.cnf에서 설정됩니다. https://dev.mysql.com/doc/refman/5.5/en/packet-too-large.html –
@Darryl - 감사. 내 문제를 아주 잘 설명하지 않았거나 적절한 용어를 사용하지 않은 것 같습니다. 나는 max_allowed_packet 설정이 어디에 있는지 이해한다. 문제는 패킷 크기를 초과하지 않고 삽입 할 수있는 데이터의 양을 결정하는 방법을 모르겠다는 것입니다.서버에서 max_allowed_packet 크기를 변경하는 것은 나를위한 옵션이 아닙니다. – SecondSun24