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学习之整理字符串
Apr 17 PHP
PHP编程函数安全篇
Jan 08 PHP
PHP写日志的实现方法
Nov 05 PHP
php检查是否是ajax请求的方法
Apr 16 PHP
PHP实现XML与数据格式进行转换类实例
Jul 29 PHP
PHP中strcmp()和strcasecmp()函数字符串比较用法分析
Jan 07 PHP
php5.4传引用时报错问题分析
Jan 22 PHP
PHP使用mysqli操作MySQL数据库的简单方法
Feb 04 PHP
详解Yii2.0 rules验证规则集合
Mar 21 PHP
php实现页面纯静态的实例代码
Jun 21 PHP
PHPExcel 修改已存在Excel的方法
May 03 PHP
php求斐波那契数的两种实现方式【递归与递推】
Sep 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生成xml简单实例代码
2009/12/16 PHP
解析file_get_contents模仿浏览器头(user_agent)获取数据
2013/06/27 PHP
php汉字转拼音的示例
2014/02/27 PHP
php 把数字转换成汉字的代码
2015/07/21 PHP
php递归实现无限分类的方法
2015/07/28 PHP
php实现网站文件批量压缩下载功能
2015/10/28 PHP
PHP读取PPT文件的方法
2015/12/10 PHP
PHP的openssl加密扩展使用小结(推荐)
2016/07/18 PHP
Yii2基于Ajax自动获取表单数据的方法
2016/08/10 PHP
Laravel实现自定义错误输出内容的方法
2016/10/10 PHP
支付宝支付开发――当面付条码支付和扫码支付实例
2016/11/04 PHP
jquery如何判断某元素是否具备指定的样式
2013/11/05 Javascript
nodejs 提示‘xxx’ 不是内部或外部命令解决方法
2014/11/20 NodeJs
JavaScript encodeURI 和encodeURIComponent
2015/12/04 Javascript
js将json格式的对象拼接成复杂的url参数方法
2016/05/25 Javascript
[原创]JavaScript语法高亮插件highlight.js用法详解【附highlight.js本站下载】
2016/11/01 Javascript
AngularJS指令用法详解
2016/11/02 Javascript
AngularJS实现的获取焦点及失去焦点时的表单验证功能示例
2017/10/25 Javascript
9种使用Chrome Firefox 自带调试工具调试javascript技巧
2017/12/22 Javascript
Vue2.0 事件的广播与接收(观察者模式)
2018/03/14 Javascript
vue项目中在外部js文件中直接调用vue实例的方法比如说this
2019/04/28 Javascript
element-ui中按需引入的实现
2019/12/25 Javascript
vue实现多个echarts根据屏幕大小变化而变化实例
2020/07/19 Javascript
react中hook介绍以及使用教程
2020/12/11 Javascript
Python可变参数函数用法实例
2015/07/07 Python
简单上手Python中装饰器的使用
2015/07/12 Python
python基础教程之匿名函数lambda
2017/01/17 Python
Python用sndhdr模块识别音频格式详解
2018/01/11 Python
python调用Matplotlib绘制分布点并且添加标签
2018/05/31 Python
pandas 如何分割字符的实现方法
2019/07/29 Python
django自带的权限管理Permission用法说明
2020/05/13 Python
国培计划培训感言
2014/03/11 职场文书
财务部副经理岗位职责
2014/03/14 职场文书
2015年七一建党节活动总结
2015/03/20 职场文书
公司岗位说明书
2015/10/08 职场文书
MySQL中的隐藏列的具体查看
2021/09/04 MySQL