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 相关文章推荐
PHP5.4中json_encode中文转码的变化小结
Jan 30 PHP
php后门URL的防范
Nov 12 PHP
php利用cookie实现自动登录的方法
Dec 10 PHP
PHP获取当前完整URL地址的函数
Dec 21 PHP
PHP内核探索之解释器的执行过程
Dec 22 PHP
Yii操作数据库实现动态获取表名的方法
Mar 29 PHP
yii2 页面底部加载css和js的技巧
Apr 21 PHP
浅谈php中fopen不能创建中文文件名文件的问题
Feb 06 PHP
利用php的ob缓存机制实现页面静态化方法
Jul 09 PHP
PHP魔术方法之__call与__callStatic使用方法
Jul 23 PHP
PHP字符串与数组处理函数用法小结
Jan 07 PHP
基于PHP实现发微博动态代码实例
Dec 11 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 radio 单选框获取与保持值的实现代码
2010/05/15 PHP
php用数组返回无限分类的列表数据的代码
2010/08/08 PHP
YiiFramework入门知识点总结(图文教程)
2015/12/28 PHP
PHP 使用 Imagick 裁切/生成缩略图/添加水印自动检测和处理 GIF
2016/02/19 PHP
使用pjax实现无刷新更改页面url
2015/02/05 Javascript
javascript显示中文日期的方法
2015/06/18 Javascript
JS实现网页上随滚动条滚动的层效果代码
2015/11/04 Javascript
javascript的 {} 语句块详解
2016/02/27 Javascript
NodeJS创建最简单的HTTP服务器
2017/05/15 NodeJs
javascript实现二叉树遍历的代码
2017/06/08 Javascript
微信小程序实现多宫格抽奖活动
2020/04/15 Javascript
JavaScript引用类型之基本包装类型实例分析【Boolean、Number和String】
2018/08/09 Javascript
vue 刷新之后 嵌套路由不变 重新渲染页面的方法
2018/09/13 Javascript
微信小程序使用二次贝塞尔曲线画波浪
2018/12/25 Javascript
nodejs基础之buffer缓冲区用法分析
2018/12/26 NodeJs
vue 动态表单开发方法案例详解
2019/12/02 Javascript
Vue-cli assets SubDirectory及PublicPath区别详解
2020/08/18 Javascript
Python显示进度条的方法
2014/09/20 Python
Python中的pprint折腾记
2015/01/21 Python
Python中使用hashlib模块处理算法的教程
2015/04/28 Python
Python常见格式化字符串方法小结【百分号与format方法】
2016/09/18 Python
使用python搭建服务器并实现Android端与之通信的方法
2019/06/28 Python
Django ModelForm组件使用方法详解
2019/07/23 Python
django 配置阿里云OSS存储media文件的例子
2019/08/20 Python
Python爬取爱奇艺电影信息代码实例
2019/11/26 Python
如何给Python代码进行加密
2020/01/10 Python
基于Python实现视频的人脸融合功能
2020/06/12 Python
高考考python编程是真的吗
2020/07/20 Python
移动端rem布局的两种实现方法
2018/01/03 HTML / CSS
Stokke美国官方网店:高级儿童家具、推车、汽车座椅和配件
2020/06/06 全球购物
会计自荐书
2013/12/02 职场文书
办理居住证介绍信
2014/01/15 职场文书
市场部业务员岗位职责
2014/04/02 职场文书
纪律教育学习月活动总结
2014/08/27 职场文书
民主生活会对照检查材料(统计局)
2014/09/21 职场文书
律师催款函范文
2015/06/24 职场文书