mysql> load data infile '/tmp/mytable.csv' into table mytable;

load data infile肯定是最快的.

如果要用PHP来做,那可以考虑开启事务,批量插入,注意避免PHP执行超时.

ignore_user_abort(true); //设置客户端断开连接时继续执行脚本

set_time_limit(0); //设置脚本最大执行时间,如果设置为0秒,则没有时间方面的限制.

//开启事务,批量插入

$db = new mysqli('127.0.0.1','user','pass','dbname',3306);

$db->query('SET AUTOCOMMIT=0');

$db->query('START TRANSACTION');

//导入CSV表格:CSV转数组

$fp = fopen('file.csv', 'r');

while( ($row = fgetcsv($fp)) !== FALSE ) {

//从文件指针中读入一行并解析CSV

$stmt = $db->prepare('INSERT INTO posts (id, post_title, post_content) VALUES (?,?,?)');

$stmt->bind_param('iss', $row[0], $row[1], $row[2]); //这里假设每行内容分别为ID,标题和内容

$stmt->execute();

//如果插入失败,改为更新

if($stmt->affected_rows == 0) {

$stmt = $db->prepare('UPDATE posts SET post_title = ?, post_content = ? WHERE id = ?');

$stmt->bind_param('ssi', $row[1], $row[2], $row[0]);

$stmt->execute();

if($stmt->affected_rows == 0) {

echo 'Import '.$row[0].' failed!'."\n";

}

}

}

fclose($fp);

//提交事务

$db->query('COMMIT'); //失败的操作已经echo输出来了,不需要回滚ROLLBACK

$db->query('SET AUTOCOMMIT=1');

$db->close();

Ubuntu(i5-3230M),开启事务时,PHP5(单进程)往SQLite插入100万条记录(38MB)只用16秒,平均每秒插入62500条.在/dev/shm内存中进行测试,PHP7耗时约9秒.

mysql100万数据一键下载csv_使用PHP来导入包含100万条数据的csv文件,请问你最快多久能全部导入mysql 数据库?...相关推荐

  1. mysql一张表100亿条数据_一个表有100亿条记录,如何优化

    我们的数据库还在设计阶段.我们预计数据量将会很大,一年的时间里,一张表,就会产生100亿条数据,表结构,如下id,userid,createddate,等等正常情况下,100亿条记录如果都存在一个表里 ...

  2. Crawl:利用bs4和requests爬取了国内顶级某房源平台(2020年7月2日上海二手房)将近30*100多条数据并进行房价分析以及预测

    Crawl:利用bs4和requests爬取了国内顶级某房源平台(2020年7月2日上海二手房)将近30*100多条数据并进行房价分析以及预测 目录 利用bs4和requests爬取了国内顶级某房源平 ...

  3. Oracle创建视图实现获取当前数据所在的页数,这里以每页2条数据分页

    摘要:Oracle创建视图实现获取当前数据所在的页数,这里以每页2条数据分页,详细请看: 一: DROP VIEW MIP.TB_CMS_FLGTINFO_D_VIEW;/* Formatted on ...

  4. python 接入百度地图数据包下载_Python爬虫-利用百度地图API接口爬取数据并保存至MySQL数据库...

    首先,我这里有一份相关城市以及该城市的公园数量的txt文件: 分析-02.png 其次,利用百度地图API提供的接口爬取城市公园的相关信息. 所利用的API接口有两个: 1.http://api.ma ...

  5. boot spring 解析csv_文件系统(02):基于SpringBoot框架,管理Xml和CSV文件类型-阿里云开发者社区...

    一.文档类型简介 1.XML文档 XML是可扩展标记语言,是一种用于标记电子文件使其具有结构性的标记语言.标记指计算机所能理解的信息符号,通过此种标记,计算机之间可以处理包含各种的信息比如数据结构,格 ...

  6. 关联表多数据的批量insert (批量导入,测试19W条数据用时46秒)

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. 一.业务需求 :作多个批量导入 ,根据业务不同,每条数据导入前作各种验证,             ...

  7. phpexcel导出大量数据合并单元格_PHPExcel处理一个单元格内多条数据拆分成多个单元格多条数据...

    日期: 2020年6月17日 分类: PHP Tags: Excel 阅读量: 1,221 一.描述需求 如图,当我们遇到一条数据中,某一项内容有多条数据,为了方便文档查阅,我们需要在那一项数据进行拆 ...

  8. mysql分组取所有数据_mysql 分组后取每个组内最新的一条数据

    首先,将按条件查询并排序的结果查询出来. mysql> select accepttime,user,job from tuser_job where user =8 order by acce ...

  9. .net core Excel导入导出,1W条数据之内很好用的ExcelHelper

    老样子,先贴码. 数据导出 只需要两行代码,即可导出数据. 只有一个约定:DisplayName 为列头. 即可导出 如下: 导出效果: 导出后的数据: 导出结束!!! 数据导入,可直接转换对应mod ...

最新文章

  1. 华为设备经典的地址以及远程登录(VTY)实施
  2. python 界面开发框架_八款常用的 Python GUI 开发框架推荐
  3. P4271 [USACO18FEB]New Barns
  4. 使用jprobe建设镜面层叠的原则和见解
  5. 一个女孩为什么要努力
  6. linux7设置上下文权限,【CONTEXT】自定义CONTEXT(上下文)
  7. Tuxedo中间件介绍
  8. 什么样的家具拆单软件才能称之为好用?全屋定制拆单 衣柜橱柜拆单 sketchup拆单 拆单软件 有屋拆单软件 筑木
  9. 什么是等保(信息安全等级保护)?
  10. 洛谷:P哥的桶(线段树 + 线性基)
  11. 说说DBA职责和目标
  12. GTD时间管理法的五个步骤 用便签备忘录辅助完成高效时间管理
  13. 树莓派CM4开机准备开发环境
  14. 使用虚拟机备份软件恢复OpenStack虚拟机
  15. tiptop 编译运行_CPU 利用率背后的真相,只有 1% 人知道
  16. Mac 安装Photoshop遇到一系列问题解决方法
  17. 我的世界rpg服务器无限点卷无限金币地址,我的世界RPG插件无限刷任何物品 | 手游网游页游攻略大全...
  18. 华为南研所校招软件技术岗几点建议
  19. 第十届蓝桥杯C语言B组题解
  20. iphone计算机历史信息,“领先业界5年!” 苹果iPhone历史回顾

热门文章

  1. 使用PHP搞定支付宝、微信扫码支付
  2. 如何在Vim中复制到剪贴板?
  3. 模拟和存根有什么区别?
  4. 从人肉到智能,阿里运维体系经历了哪些变迁?
  5. React Native 'config.h' file not found
  6. 高级篇:独立开发者 5 分钟入门 ASO
  7. 《易学C++(第2版)》——1.4 C++能够做些什么
  8. 782B The Meeting Place Cannot Be Changed(二分)
  9. android studio adb
  10. this.name=name;和this.setName(name);的区别