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

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

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

代码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 将数组键值转为变量

php 将数组键值转为变量

<?php $data=array('a'=>1,'b'=>2,'c'=>3,'d'=>4); extract($data); var_dump($a,$b,$c,$d); ?>在人人商城中捡到的...

【一】PHP多进程学习-简单创建父子进程.理解父子进程运行流程

【一】PHP多进程学习-简单创建父子进程.理解父子进程运行流程

(1).学习的目标:学会创建父子进程,并且能够区分当前进程是父还是子;了解父进程执行过程,子进程执行过程;能够用多进程执行任务(2).相关函数学习:    (2.1)pcntl_fork()执行时:       &nbs...

php守护进程

php守护进程

<?php /**  * daemonize让当前脚本为守护进程执行  * @param string $callback 匿名函数  */ function daemonize($callback) {...

php redis队列实现秒杀 , php用redis 实现秒杀功能

php redis队列实现秒杀 , php用redis 实现秒杀功能

为什么使用队列?因为pop取队列具有原子性。假如我们需要秒杀一个商品id,我们先将商品的库存保存到一个队列。例如:<?php $redis = new Redis(); $redis->connect('127.0.0.1', 6...

php关闭浏览器继续运行

php关闭浏览器继续运行

//设置客户端断开依然运行 ignore_user_abort(true); //设置脚本不超时 set_time_limit(0); //死循环每隔1秒访问一次网址 while (true) {     sleep(1);  &nb...

 php转换文本编码,php字符编码转换,php编码转换

php转换文本编码,php字符编码转换,php编码转换

整理一个自己用的编码转换方法,不需要知道原字符串的编码,只需要传入字符串,和你想要转换的编码。/**  * 编码转换  * @param string $char  * @param string $...