php快速导入大量数据的实例方法


Posted in PHP onSeptember 23, 2019

PHP快速导入大量数据到数据库的方法

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

$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秒 ,代码如下:

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分钟!代码如下:

$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);

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

感谢大家的学习和对三水点靠木的支持。

PHP 相关文章推荐
php一句话cmdshell新型 (非一句话木马)
Apr 18 PHP
PHP 图片上传实现代码 带详细注释
Apr 29 PHP
PHP第一季视频教程(李炎恢+php100 不断更新)
May 29 PHP
php数组(array)输出的三种形式详解
Jun 05 PHP
CI框架学习笔记(一) - 环境安装、基本术语和框架流程
Oct 26 PHP
php判断两个日期之间相差多少个月份的方法
Jun 18 PHP
UTF-8正则表达式如何匹配汉字
Aug 03 PHP
PHP获取指定时间段之间的 年,月,天,时,分,秒
Jun 05 PHP
Thinkphp和Bootstrap结合打造个性的分页样式(推荐)
Aug 01 PHP
php str_getcsv把字符串解析为数组的实现方法
Apr 05 PHP
LaravelS通过Swoole加速Laravel/Lumen详解
Mar 02 PHP
PHP模版引擎原理、定义与用法实例
Mar 29 PHP
关于Yii中模型场景的一些简单介绍
Sep 22 #PHP
php定期拉取数据对比方法实例
Sep 22 #PHP
php设计模式之工厂模式用法经典实例分析
Sep 20 #PHP
php设计模式之单例模式用法经典示例分析
Sep 20 #PHP
php数组和链表的区别总结
Sep 20 #PHP
php输出反斜杠的实例方法
Sep 19 #PHP
php实现session共享的实例方法
Sep 19 #PHP
You might like
php 接口类与抽象类的实际作用
2009/11/26 PHP
php获取表单中多个同名input元素的值
2014/03/20 PHP
WordPress的文章自动添加关键词及关键词的SEO优化
2016/03/01 PHP
PHP基于swoole多进程操作示例
2019/08/12 PHP
Extjs学习笔记之四 工具栏和菜单
2010/01/07 Javascript
jquery Mobile入门—多页面切换示例学习
2013/01/08 Javascript
jquery post方式传递多个参数值后台以数组的方式进行接收
2013/01/11 Javascript
xmlhttp缓存清除的2种解决方法
2013/12/13 Javascript
js调用浏览器打印模块实现点击按钮触发自定义函数
2014/03/21 Javascript
基于javascript html5实现3D翻书特效
2016/03/14 Javascript
利用JavaScript阻止表单提交的两种方法
2016/08/11 Javascript
jQuery实现隔行变色的方法分析(对比原生JS)
2016/11/18 Javascript
原生js实现倒计时功能(多种格式调用)
2017/01/12 Javascript
前端开发不得不知的10个最佳ES6特性
2017/08/30 Javascript
JavaScript数据结构与算法之检索算法实例分析【顺序查找、最大最小值、自组织查询】
2019/02/22 Javascript
JavaScript实现tab栏切换效果
2020/03/16 Javascript
JavaScript Window浏览器对象模型原理解析
2020/05/30 Javascript
Vue实现一种简单的无限循环滚动动画的示例
2021/01/10 Vue.js
Python 深入理解yield
2008/09/06 Python
Python 检查数组元素是否存在类似PHP isset()方法
2014/10/14 Python
Python判断文件和文件夹是否存在的方法
2015/05/21 Python
Python简单实现TCP包发送十六进制数据的方法
2016/04/16 Python
python opencv设置摄像头分辨率以及各个参数的方法
2018/04/02 Python
代码实例讲解python3的编码问题
2019/07/08 Python
PyQt5基本控件使用详解:单选按钮、复选框、下拉框
2019/08/05 Python
python 多进程并行编程 ProcessPoolExecutor的实现
2019/10/11 Python
Python 静态方法和类方法实例分析
2019/11/21 Python
Django REST framwork的权限验证实例
2020/04/02 Python
python实现最短路径的实例方法
2020/07/19 Python
服装设计专业求职信
2014/06/16 职场文书
2014年财政局工作总结
2014/12/09 职场文书
小学五年级语文上册教学计划
2015/01/22 职场文书
初中政治教师教学反思
2016/02/23 职场文书
php 解析非标准json、非规范json
2021/04/01 PHP
VS2019连接MySQL数据库的过程及常见问题总结
2021/11/27 MySQL
victoriaMetrics库布隆过滤器初始化及使用详解
2022/04/05 Golang