当前位置:首页 > PHP > 正文内容

PHP批量插入的2种方法速度对比

高老师9年前 (2017-06-27)PHP1888

代码1:for循环批量插入100W数据

<?php
set_time_limit(0);


$servername = "localhost";
$username = "root";
$password = "123456";
$dbname = "learn";

// 创建连接
$conn = mysqli_connect($servername, $username, $password, $dbname);
// 检测连接
if (!$conn) {
    die("Connection failed: " . mysqli_connect_error());
}

$sql = "INSERT INTO shop_goods (title, price) VALUES ('商品1',500)";

for ($i=0; $i <1000000 ; $i++) { 
	mysqli_query($conn, $sql);
}




//计算执行时长
$runtime=time()-$_SERVER['REQUEST_TIME'];
echo $runtime;   //1.03分钟
mysqli_close($conn);

?>

完成时间:1.03分钟

代码2:将所有插入合并为1条Mysql语句,由于语句较长,请执行mysql命令:set global max_allowed_packet =  2*1024*1024*10;避免超长Mysql无法执行。

<?php
set_time_limit(0);


$servername = "localhost";
$username = "root";
$password = "123456";
$dbname = "learn";

// 创建连接
$conn = mysqli_connect($servername, $username, $password, $dbname);
// 检测连接
if (!$conn) {
    die("Connection failed: " . mysqli_connect_error());
}

$sql = "INSERT INTO shop_goods (title, price) VALUES ";

for ($i=0; $i <1000000 ; $i++) { 
	$sql.="('商品1',500),";
}

$sql = substr($sql,0,strlen($sql)-1);

mysqli_query($conn, $sql);



//计算执行时长
$runtime=time()-$_SERVER['REQUEST_TIME'];
echo $runtime;   //4秒
mysqli_close($conn);

?>

        

完成时间:4秒

扫描二维码推送至手机访问。

版权声明:本文由高久峰个人博客发布,如需转载请注明出处。

本文链接:https://blog.20230611.cn/post/17.html

分享给朋友:

“PHP批量插入的2种方法速度对比” 的相关文章

php 数组转换xml,php 数组转成xml,php数组转xml 函数

php 数组转换xml,php 数组转成xml,php数组转xml 函数

源码:特别适用于微信支付中通知微信支付网关function array2xml($arr, $level = 1) { $s = $level == 1 ? "<xml&g...

xmlrpc  php,php通过xml-rpc进行通信

xmlrpc php,php通过xml-rpc进行通信

xmlrpc协议是通过http请求xml数据进行通信。webservice中和它相同的是soap。soap调用的确很简单,但是创建wsdl太繁琐,效率低下。xmlrpc很好的解决这个问题。(1).创建xmlrpc服务端(求和函数api)function getSum($method,$ar...

packagist包发布稳定版

packagist包发布稳定版

自己的composer已经发布到packagist,但是无法使用composer require easy-task/easy-task来安装,只能在配置文件使用如下方式安装:"require": {     "easy...

php elasticsearch基础使用

php elasticsearch基础使用

elasticsearch的操作都是基于http协议的,已经有现成的php类库,composer安装即可。{     "require": {        &...

php管道通信

php管道通信

(1).管道是干嘛的?管道是用于进程之间通信的,传播或交换信息(2).管道有几种?(2.1).匿名管道(pipe):管道是一种半双工的通信方式,数据只能单向流动,而且只能在具有亲缘关系的进程间使用。通常是指父子进程关系。(2.2).高级管道(popen):将另一个程序当做一个新的进程在当前程序进程中...

 thinkphp5定时任务,tp5定时任务,thinkphp定时任务,php定时任务,php定时器

thinkphp5定时任务,tp5定时任务,thinkphp定时任务,php定时任务,php定时器

本教程使用的定时任务基于EasyTak,EasyTask官方文档:https://gitee.com/392223903/EasyTask(1).安装tp5.0或者5.1composer create-project topthink/think=5.0.* tp5&n...