大批量插入数据信息
若要大批量插入数据,比如插入1000条数据.
数据表结构如下:
第一种方法是进行普通的插入,但是会太耗时间,
图片的源代码如下:
<?php
$conn = new PDO('mysql:host=127.0.0.1;dbname=blog', 'blog', 'ziyou268');
for($i=0;$i<=1000;$i++){
//$arr = [‘lisi’,23];
$v = rand(1000,999999);
$sql = " insert into test (name,age,qq) values('lisi',$v,$v)";
$conn->query($sql);
}
时间
第二种方式:
用事务的方式:每100条算一次事务,效果还是很明显的
图片代码:
<?php
$conn = new PDO('mysql:host=127.0.0.1;dbname=blog', 'blog', 'ziyou268');
$sq = "start TRANSACTION";
$conn->query($sq);
for($i=1;$i<=1000;$i++){
$v = rand(100000,999999);
$sql = "insert into test (name,age,qq) values('lisi',$v,$v)";
$conn->query($sql);
if($i%100 == 0) {
$conn->query('commit');
$conn->query($sq);
}
}
$conn->query('commit');
时间测试
而第三种方式是用:insert into table (value) values (value1),(value2),(value3);
图片代码:
<?php
$conn = new PDO('mysql:host=127.0.0.1;dbname=blog', 'blog', 'ziyou268');
$sql = " insert into test (name,age,qq) values ";
for($i=0;$i<=1000;$i++){
//$arr = [‘lisi’,23];
$v = rand(1000,999999);
$sql .= " ('lisi',$v,$v),";
}
$sql = substr($sql,0,strlen($sql)-1);
$conn->query($sql);
时间:
嘿嘿,你这写的不少啊
张姿势了,原来事务还可以这么玩,学习路漫漫