第一种方法:使用insert into 插入,代码如下:

?
1
2
3
4
5
6
7
$params = array(‘value'=>'50′);
set_time_limit(0);
echo date(“H:i:s”);
for($i=0;$i<2000000;$i++){
$connect_mysql->insert($params);
};
echo date(“H:i:s”);

最后显示为:23:25:05 01:32:05 也就是花了2个小时多!

第二种方法:使用事务提交,批量插入数据库(每隔10W条提交下)最后显示消耗的时间为:22:56:13 23:04:00 ,一共8分13秒  ,代码如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
echo date(“H:i:s”);
$connect_mysql->query(‘BEGIN');
$params = array(‘value'=>'50′);
for($i=0;$i<2000000;$i++){
$connect_mysql->insert($params);
if($i%100000==0){
$connect_mysql->query(‘COMMIT');
$connect_mysql->query(‘BEGIN');
}
}
$connect_mysql->query(‘COMMIT');
echo date(“H:i:s”);

第三种方法:使用优化SQL语句:将SQL语句进行拼接,使用 insert into table () values  (),(),(),()然后再一次性插入,如果字符串太长,

则需要配置下MYSQL,在mysql 命令行中运行 :set global max_allowed_packet =  2*1024*1024*10;消耗时间为:11:24:06 11:25:06;

插入200W条测试数据仅仅用了1分钟!代码如下:

?
1
2
3
4
5
6
$sql= “insert into twenty_million (value) values”;
for($i=0;$i<2000000;$i++){
$sql.=”('50′),”;
};
$sql = substr($sql,0,strlen($sql)-1);
$connect_mysql->query($sql);

最后总结下,在插入大批量数据时,第一种方法无疑是最差劲的,而第二种方法在实际应用中就比较广泛,第三种方法在插入测试数据或者其他低要求时比较合适,速度确实快。

转载于:https://www.cnblogs.com/mudebao/p/6943870.html

PHP大批量插入数据库的3种方法和速度对比相关推荐

  1. mysql 批量插入数据方法_mysql大批量插入数据的4种方法示例

    前言 本文主要给大家介绍了关于mysql大批量插入数据的4种方法,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧 方法一:循环插入 这个也是最普通的方式,如果数据量不是很大,可以使用, ...

  2. mysql 文件批量插入_mysql大批量插入数据的4种方法示例

    前言 本文主要给大家介绍了关于mysql大批量插入数据的4种方法,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧 方法一:循环插入 这个也是最普通的方式,如果数据量不是很大,可以使用, ...

  3. Mybatis的批量插入数据库的两种方法及代码自动生成工具的使用方法

    文章目录 常规批量插入.(通过foreach,生成很长的SQL) ExecutorType.BATCH方式执行批量操作 在这里简单介绍一下,自动生成工具的使用方法 常规批量插入.(通过foreach, ...

  4. mysql如何防止插入重复数据_防止MySQL重复插入数据的三种方法

    新建表格 CREATE TABLE `person` ( `id` int NOT NULL COMMENT '主键', `name` varchar(64) CHARACTER SET utf8 C ...

  5. asp mysql 更新数据_Asp更新数据库的几种方法

    Asp更新数据库的几种方法 asp中插入与修改数据的几种方式.为了方便解说,我们先建立一个名为test的表,表内只有两个数据 项:username和email,分别用来存储用户名与邮箱地址. 1.利用 ...

  6. mysql 禁止插入重复数据_防止MySQL重复插入数据的三种方法

    新建表格 CREATE TABLE `person` ( `id` int NOT NULL COMMENT '主键', `name` varchar(64) CHARACTER SET utf8 C ...

  7. asp mysql insert_用asp把表单数据插入数据库的2种常用方法

    用asp把表单数据插入数据库的2种常用方法: 1.直接使用sql语句的 优点:速度快,不耗资源 缺点:不能传递太长的字段内容,字段比较多时不易排错. 推荐有经验的编程者优先考虑. 具体操作: 假设表单 ...

  8. SQLServer 批量插入数据的两种方法

    SQLServer 批量插入数据的两种方法- 发布:dxy 字体:[增加 减小] 类型:转载 在SQL Server 中插入一条数据使用Insert语句,但是如果想要批量插入一堆数据的话,循环使用In ...

  9. 将Excel数据导入mysql数据库的几种方法

    将Excel数据导入mysql数据库的几种方法 "我的面试感悟"有奖征文大赛结果揭晓! 前几天需要将Excel表格中的数据导入到mysql数据库中,在网上查了半天,研究了半天,总结 ...

  10. 删除oracle数据库的三种方法,oracle数据库的删除方法详解

    oracle数据库的删除方法详解 1.图形界面删除 练习之前记得创建快照 执行命令之前要保证数据库属于open状态 SQL> alter database open; [oracle@local ...

最新文章

  1. [LeetCode] NO. 100 Same Tree
  2. Python 在定义函数时 为什么默认参数不能放在必选参数前面
  3. 将字符串转换成ListT
  4. Python练习1-文档格式化成html
  5. 《现代操作系统》第7章读书笔记--虚拟化和云(未完成)
  6. LeetCode 220. 存在重复元素 III(lower_bound)
  7. 独家 | 2021双11背后的数据库硬核科技
  8. C#解析单层html的中的文本,然后拼接起来
  9. Windbg 查看SSDT表
  10. ECshop生态全面开放,城市合伙人招募火热启动
  11. Java结合docx4j生成docx文件
  12. 拉钩网前端项目实战02
  13. Pointnet网络结构与代码解读
  14. GHOST重装系统详解
  15. 智能时尚:人工智能在时尚服装行业的应用综述 | 580+参考文献
  16. 物联网卡的分类有哪些
  17. 微信小程序样式-元素选择器的使用
  18. Java约定俗成怎么定义_Java接口定义规范,摘自晓风轻专栏
  19. 实践指南-网页生成PDF
  20. 02-学习笔记(webstorm设置代码自动缩进量)【新手上路,多多关照】

热门文章

  1. 你会买新款 Macbook Pro 么?
  2. CF1062D Fun with Integers
  3. 解决ubuntu12.04下安装gitlabError Compiling CSS asset的错误以及401资源错误
  4. spark、hive、impala、hbase、gbase在结构化数据方面查询原理对比(含parquet/orc)
  5. Ubuntu14.04LTS TensorFlow安装手册
  6. Laravel 使用firstOrCreate 报错MassAssignmentException
  7. Java并发编程:进程和线程之由来__进程让操作系统的并发性成为可能,而线程让进程的内部并发成为可能...
  8. Solr -- 实时搜索
  9. unity player 显示播放错误时的解决办法
  10. Problem:服务器超过最大中终连接数