Heim > Artikel > Backend-Entwicklung > Analyse der maximalen Datenmenge, die von addAll von THINKPHP unterstützt wird
In diesem Artikel wird hauptsächlich die maximale Datenmenge vorgestellt, die von addAll von THINKPHP unterstützt wird. Freunde, die es benötigen, können darauf verweisen
Es gibt zwei Methoden für den Modellbetrieb in Thinkphp: add() und 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);
Die addAll-Methode kann Daten stapelweise hinzufügen, so wird MySQL verwendet:
INSERT INTO tbl_name (a,b,c) VALUES(1,2,3),(4,5,6),(7,8,9);
Wenn die Datenmenge groß ist, versuchen Sie, die Stapeleinfügung anstelle einer Schleife nach der anderen zu wählen, da Ihre Datenbank dies sonst tut überwältigt sein.
Wenn Sie es jedoch als selbstverständlich betrachten und alle Daten in einem Array speichern und addAll ausführen, werden Sie ebenfalls mit einer Blockiersituation konfrontiert.
Der Grund dafür ist, dass die Konfiguration der Variable max_allowed_packet in MySQL die Länge der Upload-SQL-Anweisung begrenzt. Konfigurieren Sie sie einfach größer in der MySQL-Konfiguration
max_allowed_packet = 100M
Begrenzen Sie beim Einfügen von Daten gleichzeitig auch die Länge des Batch-Einfügens. Schließlich weiß man nie, wann die Daten Millionen werden.
Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, er wird für das Studium aller hilfreich sein. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website.
Verwandte Empfehlungen:
Das ThinkPHP3.2-Framework verwendet addAll(), um Daten in Stapeln einzufügen
Das obige ist der detaillierte Inhalt vonAnalyse der maximalen Datenmenge, die von addAll von THINKPHP unterstützt wird. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!