이 글에서는 주로 THINKPHP의 addAll이 지원하는 최대 데이터 양을 소개합니다. 필요한 친구들은 참고하면 됩니다.
Thinkphp의 모델 작업에는 add()와 addAll
$User = M("User"); // 实例化User对象 $data['name'] = 'ThinkPHP'; $data['email'] = 'ThinkPHP@gmail.com'; $User->add($data); $dataList[] = array('name'=>'thinkphp','email'=>'thinkphp@gamil.com'); $dataList[] = array('name'=>'onethink','email'=>'onethink@gamil.com'); $User->addAll($dataList);
addAll 메서드가 두 가지 메서드가 있습니다. , 즉 MySQL의 사용법은 다음과 같습니다.
INSERT INTO tbl_name (a,b,c) VALUES(1,2,3),(4,5,6),(7,8,9);
데이터 양이 많은 경우 루프에서 항목을 하나씩 삽입하는 대신 일괄 삽입을 시도하세요. 그렇지 않으면 데이터베이스가 과부하되어 중단됩니다.
하지만 당연하게 여기고 모든 데이터를 배열에 저장하고 addAll을 수행하면 중단 상황이 발생합니다. 이유는 무엇입니까?
그 이유는 mysql에서 max_allowed_packet 변수의 구성이 업로드 SQL 문 길이를 제한하기 때문입니다. mysql 구성에서 조금 더 크게 구성하면 됩니다.
max_allowed_packet = 100M
동시에 데이터를 삽입할 때도 일괄 삽입의 길이 제한을 설정하면 결국 데이터가 언제 수백만 개가 될지 알 수 없습니다.
위 내용은 이 글의 전체 내용입니다. 모든 분들의 학습에 도움이 되었으면 좋겠습니다. 더 많은 관련 내용은 PHP 중국어 홈페이지를 주목해주세요!
관련 권장사항:
ThinkPHP3.2 프레임워크는 addAll()을 사용하여 일괄적으로 데이터를 삽입합니다.
위 내용은 THINKPHP의 addAll이 지원하는 최대 데이터량 분석의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!