この記事では、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);の 2 つのメソッドがあります。
addAll メソッドはバッチでデータを追加できます。これが MySQL の使用方法です:
INSERT INTO tbl_name (a,b,c) VALUES(1,2,3),(4,5,6),(7,8,9);
データの量が大きい場合は、1 つずつループするのではなくバッチ挿入を選択するようにしてください。そうしないと、データベースが圧倒される。
しかし、すべてのデータを配列に格納して addAll を実行すると、当然のこととしてハングアップすることになります。これはなぜでしょうか。
その理由は、mysql の max_allowed_packet 変数の設定によってアップロード SQL ステートメントの長さが制限されるためです。
max_allowed_packet = 100M
同時に、データを挿入するときは、バッチ挿入の長さも制限してください。結局のところ、データがいつ数百万になるかわかりません。
上記がこの記事の全内容です。その他の関連コンテンツについては、PHP 中国語 Web サイトをご覧ください。
関連する推奨事項:
ThinkPHP3.2 フレームワークは addAll() メソッドを使用してデータをバッチに挿入します
#
以上がTHINKPHPのaddAllがサポートする最大データ量の分析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。