Heim >Backend-Entwicklung >PHP-Tutorial >Informationen zur maximalen Datenmenge, die von addAll von THINKPHP unterstützt wird

Informationen zur maximalen Datenmenge, die von addAll von THINKPHP unterstützt wird

WBOY
WBOYOriginal
2016-08-08 09:30:111132Durchsuche

Es gibt zwei Methoden für den Modellbetrieb in Thinkphp: add() und addAll

<spanmicrosoft yahei font-size:><span>1</span> <span>$User</span> = M("User"); <span>//</span><span> 实例化User对象</span>
<span>2</span> <span>$data</span>['name'] = 'ThinkPHP'<span>;
</span><span>3</span> <span>$data</span>['email'] = 'ThinkPHP@gmail.com'<span>;
</span><span>4</span> <span>$User</span>->add(<span>$data</span><span>);
</span><span>5</span> 
<span>6</span> <span>$dataList</span>[] = <span>array</span>('name'=>'thinkphp','email'=>'thinkphp@gamil.com'<span>);
</span><span>7</span> <span>$dataList</span>[] = <span>array</span>('name'=>'onethink','email'=>'onethink@gamil.com'<span>);
</span><span>8</span> <span>$User</span>->addAll(<span>$dataList</span>);</spanmicrosoft>

Die addAll-Methode kann Daten stapelweise hinzufügen, so wird MySQL verwendet:

<spanmicrosoft yahei font-size:>INSERT INTO tbl_name (a,b,c) VALUES(1,2,3),(4,5,6),(7,8,9);</spanmicrosoft>

Wenn viele Daten vorhanden sind, versuchen Sie, stapelweise einzufügen, anstatt Elemente einzeln in einer Schleife einzufügen, da Ihre Datenbank sonst überlastet wird und hängen bleibt.

Wenn Sie es jedoch als selbstverständlich betrachten und alle Daten in einem Array speichern und addAll ausführen, werden Sie auch mit einer Blockiersituation konfrontiert sein. Warum ist das so?

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 so, dass sie in der MySQL-Konfiguration größer ist

<spanmicrosoft yahei font-size:>max_allowed_packet = 100M</spanmicrosoft>


Gleichzeitig sollten Sie beim Einfügen von Daten auch die Länge des Batch-Einfügens begrenzen. Schließlich weiß man nie, wann die Daten Millionen werden.

Das Obige stellt das maximale Datenvolumen vor, das von addAll von THINKPHP unterstützt wird, einschließlich der relevanten Inhalte. Ich hoffe, es wird für Freunde hilfreich sein, die sich für PHP-Tutorials interessieren.

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn