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 相关文章推荐
Windows2003 下 MySQL 数据库每天自动备份
Dec 21 PHP
php扩展ZF――Validate扩展
Jan 10 PHP
php判断数组元素中是否存在某个字符串的方法
Jun 14 PHP
ThinkPHP的MVC开发机制实例解析
Aug 23 PHP
PHP_SELF,SCRIPT_NAME,REQUEST_URI区别
Dec 24 PHP
PHP中判断文件存在使用is_file还是file_exists?
Apr 03 PHP
YiiFramework入门知识点总结(图文教程)
Dec 28 PHP
php计算给定日期所在周的开始日期和结束日期示例
Feb 06 PHP
Yii2学习笔记之汉化yii设置表单的描述(属性标签attributeLabels)
Feb 07 PHP
php实现网页端验证码功能
Jul 11 PHP
php中如何执行linux命令详解
Nov 06 PHP
基于Laravel-admin 后台的自定义页面用法详解
Sep 30 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
《星际争霸重制版》兵种对比图鉴
2020/03/02 星际争霸
php下用cookie统计用户访问网页次数的代码
2010/05/09 PHP
Zend Framework教程之配置文件application.ini解析
2016/03/10 PHP
利用Homestead快速运行一个Laravel项目的方法详解
2017/11/14 PHP
laravel框架实现为 Blade 模板引擎添加新文件扩展名操作示例
2020/01/25 PHP
关于jQuery UI 使用心得及技巧
2012/10/10 Javascript
关于js注册事件的常用方法
2013/04/03 Javascript
当鼠标移动时出现特效的JQuery代码
2013/11/08 Javascript
JS根据变量保存方法名并执行方法示例
2014/04/04 Javascript
jquery使用animate方法实现控制元素移动
2015/03/27 Javascript
JavaScript代码性能优化总结(推荐)
2016/05/16 Javascript
JQuery学习总结【一】
2016/12/01 Javascript
详解JavaScript中return的用法
2017/05/08 Javascript
jQuery.Ajax()的data参数类型详解
2017/07/23 jQuery
VUE单页面切换动画代码(全网最好的切换效果)
2019/10/31 Javascript
Angular8 简单表单验证的实现示例
2020/06/03 Javascript
[49:21]TNC vs VG 2019DOTA2国际邀请赛淘汰赛 胜者组赛BO3 第三场 8.20.mp4
2019/08/22 DOTA
Python3 能振兴 Python的原因分析
2014/11/28 Python
利用Python绘制数据的瀑布图的教程
2015/04/07 Python
小米5s微信跳一跳小程序python源码
2018/01/08 Python
对python使用http、https代理的实例讲解
2018/05/07 Python
Python实现多线程的两种方式分析
2018/08/29 Python
python实现Flappy Bird源码
2018/12/24 Python
python word转pdf代码实例
2019/08/16 Python
Python坐标轴操作及设置代码实例
2020/06/04 Python
使用python脚本自动生成K8S-YAML的方法示例
2020/07/12 Python
男方父母婚礼答谢词
2014/01/25 职场文书
安全大检查反思材料
2014/01/31 职场文书
改进作风怎么办发言材料
2014/08/17 职场文书
竞选班干部演讲稿100字
2014/08/20 职场文书
2015年大学辅导员工作总结
2015/05/12 职场文书
庆七一晚会主持词
2015/06/30 职场文书
2016高考寄语或鼓励的话语
2015/12/04 职场文书
《普罗米修斯》教学反思
2016/02/22 职场文书
《有余数的除法》教学反思
2016/02/22 职场文书
详解盒子端CSS动画性能提升
2021/05/24 HTML / CSS