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
Dec 23 PHP
一个php导出oracle库的php代码
Apr 20 PHP
php.ini-dist 和 php.ini-recommended 的区别介绍(方便开发与安全的朋友)
Jul 01 PHP
解析php防止form重复提交的方法
Jul 01 PHP
php 读取文件头判断文件类型的实现代码
Aug 05 PHP
php上传图片之时间戳命名(保存路径)
Aug 15 PHP
ThinkPHP结合AjaxFileUploader实现无刷新文件上传的方法
Oct 29 PHP
使用PHP+AJAX让WordPress动态加载文章的教程
Dec 11 PHP
PHP经典实用正则表达式小结
May 04 PHP
详解php curl带有csrf-token验证模拟提交方法
Apr 18 PHP
PHP call_user_func和call_user_func_array函数的简单理解与应用分析
Nov 25 PHP
解决php用mysql方式连接数据库出现Deprecated报错问题
Dec 25 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 第二节 数据类型之数值型
2012/04/28 PHP
基于php验证码函数的使用示例
2013/05/03 PHP
php中用socket模拟http中post或者get提交数据的示例代码
2013/08/08 PHP
PHP实现变色验证码实例
2014/01/06 PHP
php实例分享之mysql数据备份
2014/05/19 PHP
php制作的简单验证码识别代码
2016/01/26 PHP
php设计模式之策略模式实例分析【星际争霸游戏案例】
2020/03/26 PHP
客户端 使用XML DOM加载json数据的方法
2010/09/28 Javascript
Jquery时间验证和转换工具小例子
2013/07/01 Javascript
jquery ajax属性async(同步异步)示例
2013/11/05 Javascript
jquery批量设置属性readonly和disabled的方法
2014/01/24 Javascript
JS数组的赋值介绍
2014/03/10 Javascript
JS+CSS实现Li列表隔行换色效果的方法
2015/02/16 Javascript
jQuery实现仿Alipay支付宝首页全屏焦点图切换特效
2015/05/04 Javascript
JavaScript小技巧整理篇(非常全)
2016/01/26 Javascript
JS验证逗号隔开可以是中文字母数字
2016/04/22 Javascript
如何学JavaScript?前辈的经验之谈
2016/12/28 Javascript
angularJS模态框$modal实例代码
2017/05/27 Javascript
详解jQuery中关于Ajax的几个常用的函数
2017/07/17 jQuery
如何开发出更好的JavaScript模块
2017/12/22 Javascript
解决vue-cli webpack打包后加载资源的路径问题
2018/09/25 Javascript
javaScript 实现重复输出给定的字符串的常用方法小结
2020/02/20 Javascript
[01:20]2018DOTA2亚洲邀请赛总决赛战队Mineski晋级之路
2018/04/07 DOTA
[51:50]完美世界DOTA2联赛 Magma vs GXR 第一场 11.07
2020/11/10 DOTA
Python+OpenCV实现车牌字符分割和识别
2018/03/31 Python
基于tensorflow加载部分层的方法
2018/07/26 Python
python 反编译exe文件为py文件的实例代码
2019/06/27 Python
python django中8000端口被占用的解决
2019/12/17 Python
Jupyter notebook设置背景主题,字体大小及自动补全代码的操作
2020/04/13 Python
python中的django是做什么的
2020/07/31 Python
Django如何批量创建Model
2020/09/01 Python
Python 中如何使用 virtualenv 管理虚拟环境
2021/01/21 Python
华为慧通面试题
2012/09/11 面试题
2015年秋季新学期寄语
2015/03/25 职场文书
小学作文指导之如何写人?
2019/07/08 职场文书
详解Redis实现限流的三种方式
2021/04/27 Redis