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 相关文章推荐
推荐文章系统(一)
Oct 09 PHP
mysql 搜索之简单应用
Apr 27 PHP
使用PHP socke 向指定页面提交数据
Jul 23 PHP
php获取当前时间的毫秒数的方法
Jan 26 PHP
php中ob_get_length缓冲与获取缓冲长度实例
Nov 20 PHP
PHP中调用SVN命令更新网站方法
Jan 07 PHP
PHP速成大法
Jan 30 PHP
php实现Session存储到Redis
Nov 11 PHP
php正确输出json数据的实例讲解
Aug 21 PHP
PHP+jQuery实现双击修改table表格功能示例
Feb 21 PHP
Windows服务器中PHP如何安装redis扩展
Sep 27 PHP
laravel5.5添加echarts实现画图功能的方法
Oct 09 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开发环境配置(MySQL数据库安装图文教程)
2010/04/28 PHP
检查php文件中是否含有bom的函数
2012/05/31 PHP
关于php内存不够用的快速解决方法
2013/10/26 PHP
教你如何使用php session
2013/10/28 PHP
通过php添加xml文档内容的方法
2015/01/23 PHP
Laravel中如何增加自定义全局函数详解
2017/05/09 PHP
ThinkPHP实现转换数据库查询结果数据到对应类型的方法
2017/11/16 PHP
PHP类与对象后期静态绑定操作实例详解
2018/12/20 PHP
Laravel 解决419错误 -ajax请求错误的问题(CSRF验证)
2019/10/25 PHP
PHP实现一个按钮点击上传多个图片操作示例
2020/01/23 PHP
jcarousellite.js 基于Jquery的图片无缝滚动插件
2010/12/30 Javascript
基于jquery的地址栏射击游戏代码
2011/03/10 Javascript
jquery实现漂浮在网页右侧的qq在线客服插件示例
2013/05/13 Javascript
javaScript如何生成xmlhttp
2013/12/16 Javascript
jQuery获得指定元素坐标的方法
2015/04/14 Javascript
jquery获取当前元素索引值用法实例
2015/06/10 Javascript
jQuery实现返回顶部功能
2016/02/23 Javascript
基于JavaScript实现快速转换文本语言(繁体中文和简体中文)
2016/03/07 Javascript
react-redux中connect()方法详细解析
2017/05/27 Javascript
Koa2微信公众号开发之本地开发调试环境搭建
2018/05/16 Javascript
python基础教程之自定义函数介绍
2014/08/29 Python
Python中的MongoDB基本操作:连接、查询实例
2015/02/13 Python
Python脚本实现集群检测和管理功能
2015/03/06 Python
Python与shell的3种交互方式介绍
2015/04/11 Python
Python扫描IP段查看指定端口是否开放的方法
2015/06/09 Python
python 出现SyntaxError: non-keyword arg after keyword arg错误解决办法
2017/02/14 Python
Django uwsgi Nginx 的生产环境部署详解
2019/02/02 Python
如何在Python中实现goto语句的方法
2019/05/18 Python
在pytorch中查看可训练参数的例子
2019/08/18 Python
打印机墨盒:123Inkjets
2017/02/16 全球购物
英国领先的瓷砖专家:Walls and Floors
2018/04/27 全球购物
某个公司的Java笔面试题
2016/03/11 面试题
安全协议书
2014/04/23 职场文书
个人先进事迹材料
2014/12/29 职场文书
青年人初次创业的“五不要”
2019/08/23 职场文书
uniapp开发小程序的经验总结
2021/04/08 Javascript