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

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

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

代码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对象转数组

function objtoarr($obj){ $ret = array(); foreach($obj as $key =>$value){ if(gettype($value) == 'arr...

 php文件锁解决高并发

php文件锁解决高并发

前面的文章对于高并发下单商品导致商品库存为负值的问题请先阅读再阅读本篇文章一定对您有帮助,建议亲手测试较好。加上文件锁后的下单处理代码:【一】.阻塞模式:(如果其他进程已经加锁文件,当前进程会一直等其他进程解锁文件后继续执行)<?php //连接数据库 $con=mysqli_connect(...

 php调用.net的dll文件,php调用.net dll

php调用.net的dll文件,php调用.net dll

本篇文章不是讲解如何用.net开发自己的dll然后PHP通过com调用。主要记录PHP官方支持的DOTNET 基本语法如下:$obj = new DOTNET("assembly", "classname")a...

 php max input vars,max input vars限制,max input vars 设置

php max input vars,max input vars限制,max input vars 设置

在一个正式项目中操作人员提交239个产品信息进行保存,但是系统却提示没有提交239个产品,于是开启错误信息,显示如下:Warning: Unknown: Input variables exceeded 1000. To incr...

php上传大文件,php大文件上传

php上传大文件,php大文件上传

(1).前端文件:<form action="upload.php" method="post" enctype="multipart/form-data">    &...

php new class

php new class

<?php $member = new class {     public function getInfo()     {    ...