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语法(3)
Oct 09 PHP
PHP 和 XML: 使用expat函数(三)
Oct 09 PHP
php通过COM类调用组件的实现代码
Jan 11 PHP
php中使用redis队列操作实例代码
Feb 07 PHP
div li的多行多列 无刷新分页示例代码
Oct 16 PHP
WordPress中用于创建以及获取侧边栏的PHP函数讲解
Dec 29 PHP
PHP邮件群发机实现代码
Feb 16 PHP
thinkPHP实现签到功能的方法
Mar 15 PHP
浅谈Yii乐观锁的使用及原理
Jul 25 PHP
thinkPHP框架实现生成条形码的方法示例
Jun 06 PHP
PHP多个图片压缩成ZIP的方法
Aug 18 PHP
PHP抽象类和接口用法实例详解
Jul 20 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采集相关教程之一 CURL函数库
2010/02/15 PHP
php面向对象与面向过程两种方法给图片添加文字水印
2015/08/26 PHP
php array_key_exists() 与 isset() 的区别
2016/10/24 PHP
PHP如何搭建百度Ueditor富文本编辑器
2018/09/21 PHP
javascript下对于事件、事件流、事件触发的顺序随便说说
2010/07/17 Javascript
基于jQuery实现下拉收缩(展开与折叠)特效
2012/12/25 Javascript
JQuery制作的放大效果的popup对话框(未添加任何jquery plugin)分享
2013/04/28 Javascript
浅析jquery的作用与优势
2013/12/02 Javascript
Javascript实现图片不间断滚动的代码
2016/06/22 Javascript
BootStrap入门学习第一篇
2017/08/28 Javascript
基于node.js实现微信支付退款功能
2017/12/19 Javascript
JavaScript伪数组用法实例分析
2017/12/22 Javascript
JavaScript基础心法 深浅拷贝(浅拷贝和深拷贝)
2018/03/05 Javascript
详解vue指令与$nextTick 操作DOM的不同之处
2018/08/02 Javascript
Makefile/cmake/node-gyp中区分判断不同平台的方法
2018/12/18 Javascript
Vue中使用canvas方法总结
2019/02/12 Javascript
聊聊鉴权那些事(推荐)
2019/08/22 Javascript
vue获取验证码倒计时组件
2019/08/26 Javascript
python中如何使用正则表达式的集合字符示例
2017/10/09 Python
python多线程共享变量的使用和效率方法
2019/07/16 Python
将python安装信息加入注册表的示例
2019/11/20 Python
Pytorch的mean和std调查实例
2020/01/02 Python
解决pycharm编辑区显示yaml文件层级结构遇中文乱码问题
2020/04/27 Python
CSS3中Color的一些特性介绍
2012/05/27 HTML / CSS
兰蔻美国官网:Lancome美国
2017/04/25 全球购物
Under Armour安德玛荷兰官网:美国高端运动科技品牌
2019/07/10 全球购物
美国优质宠物用品购买网站:Muttropolis
2020/02/17 全球购物
电大物流学生的自我评价
2013/10/25 职场文书
反四风对照检查材料思想汇报
2014/09/16 职场文书
2015年计算机教学工作总结
2015/07/22 职场文书
MySQL 可扩展设计的基本原则
2021/05/14 MySQL
pytorch 实现在测试的时候启用dropout
2021/05/27 Python
新手入门Mysql--概念
2021/06/18 MySQL
深入讲解数据库中Decimal类型的使用以及实现方法
2022/02/15 MySQL
高通2023 年将发布高性能PC处理器
2022/04/29 数码科技
MySQL自定义函数及触发器
2022/08/05 MySQL