Cet article présente principalement la quantité maximale de données prise en charge par addAll de THINKPHP. Les amis qui en ont besoin peuvent s'y référer
Il existe deux méthodes pour le fonctionnement du modèle dans Thinkphp : add() et 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);
La méthode addAll peut ajouter des données par lots, c'est ainsi que MySQL est utilisé :
INSERT INTO tbl_name (a,b,c) VALUES(1,2,3),(4,5,6),(7,8,9);
Lorsque la quantité de données est importante, essayez de choisir l'insertion par lots au lieu de les boucler une par une, sinon votre La base de données sera submergée et raccrochera.
Cependant, si vous le prenez pour acquis et stockez toutes les données dans un tableau et effectuez addAll, vous serez également confronté à une situation de blocage. Pourquoi est-ce ?
La raison est que la configuration de la variable max_allowed_packet dans MySQL limite la longueur de l'instruction SQL de téléchargement. Configurez-la simplement plus grande dans la configuration MySQL
max_allowed_packet = 100M
Dans le même temps, lors de l'insertion de données, limitez également la durée de l'insertion par lots. Après tout, vous ne savez jamais quand les données deviendront des millions.
Ce qui précède représente l'intégralité du contenu de cet article. J'espère qu'il sera utile à l'étude de chacun. Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois !
Recommandations associées :
Le framework ThinkPHP3.2 utilise addAll() pour insérer des données par lots
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!