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+dbfile开发小型留言本
Oct 09 PHP
php数组函数序列 之array_count_values() 统计数组中所有值出现的次数函数
Oct 29 PHP
PHP Cookie的使用教程详解
Jun 03 PHP
基于PHP文件操作的详解
Jun 05 PHP
深入apache host的配置详解
Jun 09 PHP
使用PHP Socket写的POP3类
Oct 30 PHP
php数组去重实例及分析
Nov 26 PHP
php中memcache 基本操作实例
May 17 PHP
php文件上传类完整实例
May 14 PHP
PHP实现找出链表中环的入口节点
Jan 16 PHP
php设计模式之工厂方法模式分析【星际争霸游戏案例】
Jan 23 PHP
详解PHP设计模式之依赖注入模式
May 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做下载文件的实现代码及文件名中乱码解决方法
2011/02/03 PHP
PHP实现的比较完善的购物车类
2014/12/02 PHP
php 读取输出其他文件的实现方法
2016/07/26 PHP
浅谈PHP接入(第三方登录)QQ登录 OAuth2.0 过程中遇到的坑
2017/10/13 PHP
PHP封装的完整分页类示例
2018/08/21 PHP
jquery中常用的SET和GET
2009/01/13 Javascript
js实现的日期操作类DateTime函数代码
2010/03/16 Javascript
jquery实现文本框鼠标右击无效以及不能输入的代码
2010/11/05 Javascript
学习面向对象之面向对象的术语
2010/11/30 Javascript
Array.prototype.concat不是通用方法反驳[译]
2012/09/20 Javascript
AngularJS基础学习笔记之控制器
2015/05/10 Javascript
JavaScript获取URL汇总
2015/06/08 Javascript
Node.js项目中调用JavaScript的EJS模板库的方法
2016/03/11 Javascript
浅析JavaScript回调函数应用
2016/05/22 Javascript
值得分享的JavaScript实现图片轮播组件
2016/11/21 Javascript
基于BootStrap multiselect.js实现的下拉框联动效果
2017/07/28 Javascript
详解刷新页面vuex数据不消失和不跳转页面的解决
2018/01/30 Javascript
微信小程序地图(map)组件点击(tap)获取经纬度的方法
2019/01/10 Javascript
微信小程序全局变量GLOBALDATA的定义和调用过程解析
2019/09/23 Javascript
[04:56]经典回顾:前Ehome 与 前LGD
2015/02/26 DOTA
[01:01:36]Optic vs paiN 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
python访问系统环境变量的方法
2015/04/29 Python
浅谈Python中数据解析
2015/05/05 Python
python 字符串和整数的转换方法
2018/06/25 Python
pandas读取csv文件,分隔符参数sep的实例
2018/12/12 Python
pymongo中聚合查询的使用方法
2019/03/22 Python
Python实现连接MySql数据库及增删改查操作详解
2019/04/16 Python
Python 余弦相似度与皮尔逊相关系数 计算实例
2019/12/23 Python
解决Python中导入自己写的类,被划红线,但不影响执行的问题
2020/07/13 Python
详解CSS中iconfont的使用
2015/08/04 HTML / CSS
HTML5 新旧语法标记对我们有什么好处
2012/12/13 HTML / CSS
YOOX台湾:意大利奢侈品电商
2018/10/13 全球购物
linux面试题参考答案(10)
2016/10/26 面试题
入股协议书范本
2014/04/14 职场文书
设计师求职信
2014/07/01 职场文书
36个正则表达式(开发效率提高80%)
2021/11/17 Javascript