php+mysql实现数据分批插入

上周需要将云端的数据有条件的录入到mysql中,最开始是使用遍历数据然后一条条的插入的笨方法,结果速度慢的要死,所以又随便写了个笨方法2.0,记录一下自己菜鸟的成长历程。同时这也是在博客园的第一篇文章,目的仅仅是单纯的记录一下自己的狗屎代码,因为我是菜鸟,哈哈。。。

比如说有10001条数据,每次插入1000条,分11次插入完成,代码如下:

 1 <?php
 2 /**
 3  * Created by PhpStorm.
 4  * User: Soup
 5  * Date: 2016/12/29
 6  * Time: 21:04
 7  */
 8 
 9 $mysqli = new mysqli('localhost','root','123456','test');
10 
11 
12 
13 if ($mysqli->connect_error) {
14     die('Connect Error (' . $mysqli->connect_errno . ') '
15         . $mysqli->connect_error);
16 }
17 
18 /*
19  *@param $data array 要插入的数据
20  *@param $each int 每次插入的条数
21  */
22 function batchInsert($data,$each){
23 
24     $num = count($data);        // 数据总数
25     $step = ceil( $num/$each);  // insert执行总次数
26 
27 
28     $j = 1;
29     $s = $step;
30 
31     foreach ($data as $val){    // 目前仅仅是起到循环作用
32         if($j > $step) break;
33         $arr2 = array_slice($data, ($step - $s) * $each, $each);     // 每次取100条
34         $sql = "insert into batch VALUES ";
35         foreach($arr2 as $v){
36             $exist = $GLOBALS['mysqli']->query("select * from batch where number = '$v' limit 1 "); // 检查要插入的数据是否已存在
37             $row = $exist->fetch_array(MYSQLI_ASSOC);
38             if(empty($row)){
39                 $sql .= "(null,$v,now()),";     // 将sql语句拼接起来
40             }
41         }
42         $sql = rtrim($sql, ',');
43         $result =  $GLOBALS['mysqli']->query($sql);
44         echo $sql,'<br>';
45 46 47         $j++;
48         $s--;
49     }
50     return $result;
51 }
52 
53 // 先测试简单的数字插入
54 for ($i = 1;$i <= 505;++$i){
55     $arr[$i] = $i;
56 }
57 
58 var_dump(batchInsert($arr,100));

测试505条数据,每次插入100条,分6次插入完成。

转载于:https://www.cnblogs.com/soup/p/6235090.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/285047.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[转]敏捷开发之Scrum扫盲,及敏捷开发中XP与SCRUM的区别

敏捷开发之Scrum扫盲篇 现在敏捷开发是越来越火了&#xff0c;人人都在谈敏捷&#xff0c;人人都在学习Scrum和XP… 为了不落后他人&#xff0c;于是我也开始学习Scrum&#xff0c;今天主要是对我最近阅读的相关资料&#xff0c;根据自己的理解&#xff0c;用自己的话来讲述S…

最流行的 .NET 反编译工具合集

编译和反编译 .NET 中的编译是把开发人员写的 C# 代码转化为计算机可理解的代码的过程&#xff0c;也就是中间语言代码&#xff08;IL代码&#xff09;。在这个过程中&#xff0c;C# 源代码被转换为可执行文件&#xff08;exe或者dll 文件&#xff09;。反编译则和编译相反&am…

三款国产计算机日常办公体验对比

近年来&#xff0c;信创事业开展的如火如荼&#xff0c;多款CPU和操作系统均在机关单位和央企批量应用。目前&#xff0c;信创电脑主要应用场景是日常办公&#xff0c;特别是对机关单位而言&#xff0c;文档、表格、PPT、PDF、浏览器等软件堪称办公必备。下面&#xff0c;我们就…

[转]Flask --- 框架快速入门

From&#xff1a;http://docs.jinkan.org/docs/flask/quickstart.html Flask 用户指南&#xff1a;http://docs.jinkan.org/docs/flask/index.html w3cschool.cn 的 Flask 教程&#xff1a;https://www.w3cschool.cn/flask/ 《Flask Web开发&#xff1a;基于Python的Web应用…

MAC usb启动盘制作

1.从App Store 下载OS 2.磁盘工具格式化磁盘默认即可 3. 为啥截图&#xff0c;因为有些是不一样的&#xff0c;建议使用 Tab建&#xff0c; 未命名则是你移动U盘命名的名称。 4.完成&#xff1a;所有的命令完成的话&#xff0c; 终端界面中会出现 Erasing Disk: 0%...10%...…

【ArcGIS Pro微课1000例】0011:ArcGIS Pro范围内汇总工具的巧妙使用——以甘肃省各地区内河流总长度计算为例

文章目录 问题描述范围内汇总工具介绍# 案例实现问题描述 统计甘肃省各个地区界内河流的总长度,如下图所示。 范围内汇总工具介绍 在ArcMap中可以实现河流总长度的统计,具体操作可以参考:【ArcGIS风暴】ArcGIS获取一个省各个地区界内的河流的总长度–以甘肃省为例,在ArcG…

C语言试题177之实现二分查找算法,折半查找算法

📃个人主页:个人主页 🔥系列专栏:C语言试题200例 💬推荐一款刷算法、笔试、面经、拿大公司offer神器👉 点击跳转进入网站 ✅作者简介:大家好,我是码莎拉蒂,CSDN博客专家(全站排名Top 50),阿里云博客专家、51CTO博客专家、华为云享专家 1、题目 题目: 本实例…

30分钟掌握ES6/ES2015核心内容

2019独角兽企业重金招聘Python工程师标准>>> ECMAScript 6&#xff08;以下简称ES6&#xff09;是JavaScript语言的下一代标准。因为当前版本的ES6是在2015年发布的&#xff0c;所以又称ECMAScript 2015。 也就是说&#xff0c;ES6就是ES2015。 虽然目前并不是所有浏…

Windows 11 22H2 22621.290 和 22622.290 推送

面向 Beta 频道的 Windows 预览体验成员&#xff0c;微软现已推送 Windows 11 预览版 Build 22621.290 和 22622.290。微软宣布 Beta 频道Windows 11 预览版启用全新体验&#xff0c;分为两组进行测试。通过两组 Windows 预览体验成员的使用数据和反馈&#xff0c;以更好的测试…

【ArcGIS Pro微课1000例】0012:ArcGIS Pro属性表中文乱码完美解决办法汇总

如图所示,安装完ArcGIS Pro后,由于计算机系统和应用软件字符编码的问题,导致加载矢量数据并打开属性表后,会发现中文字段出现了乱码。 属性表中文乱码: 属性表中文正常: 事实上,ArcMap中也会出现中文属性表乱码的情况。 乱码的出现会给学习和工作带来很大不便,因此本…

dubbo中的Filter顺序是如何确定的

2019独角兽企业重金招聘Python工程师标准>>> 服务提供方的过滤器被调用顺序&#xff1a; EchoFilter->ClassLoaderFilter->GenericFilter->ContextFilter->(这4个是在代码中指定的) ExceptionFilter-> TimeoutFilter ->MonitorFilter-> TraceF…

java提示找不到或无法加载主类

背景 默许jdk的配置大家都没有问题&#xff0c;执行java&#xff0c;javac无报错&#xff0c;但今天在尝试在本地起来kafka的时候&#xff0c;提示java 找不到或无法加载主类&#xff0c;然后日志中提示 Files 找不到或无法加载主类&#xff1b;C:\Program 分析 其实很轻松的猜…

[转]WebView长按弹出复制粘贴

ActionMode简介 ActionMode是android3.0之后出现的一种菜单选择模式 ActionMode的创建 ActionMode的使用特别的简单&#xff0c;主要用到两个方法&#xff0c;startActionMode和ActionMode.Callback()&#xff0c;startActionMode:开启我们的菜单&#xff0c;ActionMode.Cal…

深夜爆肝:万字长文3种语言实现Huffman树(强烈建议三连)

文章目录一、C语言能干大事1. C语言下Huffman树的计算过程分析2. C语言下Huffman树的编程二、C#语言也不赖1. C#下Huffman类的设计2. C#中界面设计3. 建立测试数据并显示Huffman树4. 输入任意一组数据&#xff0c;完成构造Huffman树三、JavaScript语言不爱听了1. JavaScript下H…

C语言试题180之实现实现字符串strcpy函数

📃个人主页:个人主页 🔥系列专栏:C语言试题200例 💬推荐一款刷算法、笔试、面经、拿大公司offer神器👉 点击跳转进入网站 ✅作者简介:大家好,我是码莎拉蒂,CSDN博客专家(全站排名Top 50),阿里云博客专家、51CTO博客专家、华为云享专家 1、题目 题目: 实现字…

[转]关于数据中台、数据平台、数据仓库、数据湖等数据概念的对比解析

前言 2010年左右&#xff0c;还是在上学的时候&#xff0c;学过一门课程叫《数据仓库与数据挖掘》&#xff0c;那还是属于传统数据的时代&#xff0c;我们会讨论什么是数据仓库&#xff1f;什么是数据集市&#xff1f;数据仓库和数据库有什么区别&#xff1f;等等&#xff0c;…

【微服务专题之】.Net6下集成消息队列-RabbitMQ交换机模式代码演示(全)

微信公众号&#xff1a;趣编程ACE关注可了解更多的.NET日常实战开发技巧&#xff0c;如需源码 请公众号后台留言 源码;[如果觉得本公众号对您有帮助&#xff0c;欢迎关注].Net中RabbitMQ中交换机模式的使用前文回顾【微服务专题之】.Net6下集成消息队列上-RabbitMQ【微服务专题…

C语言试题181之实现strcat函数

📃个人主页:个人主页 🔥系列专栏:C语言试题200例 💬推荐一款刷算法、笔试、面经、拿大公司offer神器👉 点击跳转进入网站 ✅作者简介:大家好,我是码莎拉蒂,CSDN博客专家(全站排名Top 50),阿里云博客专家、51CTO博客专家、华为云享专家 1、题目 题目: 实现st…

通宵爆肝:C语言下的平衡二叉树(Avl)原来如此简单!

文章目录平衡二叉树的构造过程1 算法描述平衡二叉树的编程1 树上结点的高度计算2 LL调整函数3 RR调整函数4 LR调整函数5 RL调整函数6 根据结点的值、动态构造平衡二叉树平衡二叉树的构造过程 对一个查找问题而言&#xff0c;查找表的存储结构、应该组织成二叉树结构。而把一个…

[转]定了!2020年,6种将死的编程语言!

随着年度复工大戏的开播&#xff0c;编程界语言排行榜又要面临一次全新的洗牌&#xff0c;六大编程语言将要黄了&#xff01;此消息一出&#xff0c;令众多程序员心碎&#xff01;那么这将“亡”的六大语言中有你所擅长的吗&#xff1f; Perl 曾几何时&#xff0c;几乎每个人都…