当前位置: 首页 > 编程笔记 >

php快速导入大量数据的实例方法

祁聪
2023-03-14
本文向大家介绍php快速导入大量数据的实例方法,包括了php快速导入大量数据的实例方法的使用技巧和注意事项,需要的朋友参考一下

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);

总结:在插入大批量数据时,第一种方法无疑是最差劲的,而第二种方法在实际应用中就比较广泛,第三种方法在插入测试数据或者其他低要求时比较合适,速度确实快。

感谢大家的学习和对小牛知识库的支持。

 类似资料:
  • 本文向大家介绍asp.net实现Postgresql快速写入/读取大量数据实例,包括了asp.net实现Postgresql快速写入/读取大量数据实例的使用技巧和注意事项,需要的朋友参考一下 最近因为一些项目需要大量插入数据,研究了下asp.net实现Postgresql快速写入/读取大量数据,所以留个笔记 环境及测试 使用.net驱动npgsql连接post数据库。配置:win10 x64, i

  • 本文向大家介绍php实现refresh刷新页面批量导入数据的方法,包括了php实现refresh刷新页面批量导入数据的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了php实现refresh刷新页面批量导入数据的方法。分享给大家供大家参考。具体分析如下: 这个功能是参考dedecms生成html页面的原理,只是dedecms使用的是js跳转而我使用的是refresh进行跳转,效果是一样

  • 问题内容: 我知道这个答案已经以其他形式发布在这里,但是我想了解更多有关迅速覆盖实例变量的信息。 假设我有这段代码 好。从我读到的内容来看,常量需要覆盖前缀。其他答案说我应该声明setter和getter?为什么?我真的不在乎这两个。我只需要替换值即可。我真的不能使用重写,因为我是从UIView继承的,这可能很危险(我认为)。 任何建议都欢迎。 问题答案: 如您所说,您不能简单地在子类中重新定义常

  • 本文向大家介绍ThinkPHP快速入门实例教程之数据分页,包括了ThinkPHP快速入门实例教程之数据分页的使用技巧和注意事项,需要的朋友参考一下 数据分页可能是web编程里最常用到的功能之一。ThinkPHP实现分页功能十分简洁。只需要定义几个参数就可以实现。并且扩展也十分方便。 下面让我们从零开始实现ThinkPHP的分页程序吧。 1.首先,我们得创建一个用于分页测试的数据库 test.sql

  • 这个页面包含的示例代码将简单介绍如何使用数据库类。更详细的信息请参考每个函数单独的介绍页面。 初始化数据库类 下面的代码将根据你的 数据库配置 加载并初始化数据库类: $this->load->database(); 数据库类一旦载入,你就可以像下面介绍的那样使用它。 注意:如果你所有的页面都需要连接数据库,你可以让其自动加载。参见 数据库连接。 多结果标准查询(对象形式) $query = $

  • 1. 简介 您可使用数据导入功能将离线数据导入分析云系统,方便后期分析及应用。该功能仅开放给定制版客户,如您需要使用,请联系您的服务人员或发邮件到 ext_analytics@baidu.com 购买。建议在如下场景中可使用该功能: 埋点数据缺失需要补录 服务端收集的数据需要入库 其它离线数据需完善补充 2. 使用说明 您可从 管理-分析云设置-数据导入 进入页面,在数据导入页面可查看 数据导入指