我有一份数据量达到1,0015,0806条的csv文件,现在需要导入Mysql中。 在我电脑中安装的版本是MYSQL8.0.12,常见的管理工具有:

已知的有三种办法: 1.用图形管理工具Navicat Premium通过导入向导8个步骤导入数据;

2.使用MYSQL Workbench 中的table data import导入数据;

3.使用load data infile语句导入;

最后结果:

方法1,2适合数据量较小的数据导入,在我导入数据时,由于数据太大,总是导入不成功。耗时巨大,最多的时候只能导入1000条数据,所以,不建议采用。 曾经我有想过把文件拆开,因为有1亿条数据,我想着拆成10个文件每个文件有1000万条数据,但是网上查了要么说需要下载拆分工具,要么用python,这两个我都不熟,所以果断舍弃,使用方法3导入。 数据导入前有准备工作要做,为将导入的文件找存放位置,建立相应数据库例如test,在test小创建表格并设置对应的列属性,接下来用Notepad++打开csv文件,查看文件编码格式,务必保证导入数据的编码格式是ANSI编码格式,若文件编码不正确改变编码格式

打开MYSQL命令窗口查询已有数据库并使用相应数据裤

接下来使用load data 命令导入数据了,使用命令之前有必要先了解load data 语法,根据官网参考手册,语法如下:

LOW_PRIORITY修饰符

功能:改变语句调度的优先级如果把执行检索(SELECT)的客户端称为"读取者",把执行修改操作(DELETE、INSERT、REPLACE或UPDATE)的客户端称 为"写入者"。MYSQL 的默认调度策略是写入操作优先于读取操作。 LOW_PRIORITY关键字影响DELETE、INSERT、LOAD DATA、REPLACE和UPDATE语句(写入操作)的执行调度。通常情况下,某张数据表正在被读取的时候,如果有写入操作到达,那么写入者一直等待读取者完成操 作(查询开始之后就不能中断,因此允许读取者完成操作)。如果写入者正在等待的时候,另一个读取操作到达了,该读取操作也会被阻塞,因为默 认的调度策略是写入者优先于读取者。当第一个读取者完成操作的时候,写入者开始操作,并且直到该写入者完成操作,第二个读取者才开始操作。 如果写入操作是一个LOW_PRIORITY(低优先级)请求,那么系统就不会认为它的优先级高于读取操作。在这种情况下,如果写入者在等待的时候,第 二个读取者到达了,那么就允许第二个读取者插到写入者之前。只有在没有其它的读取者的时候,才允许写入者开始操作。理论上,这种调度修改暗示着,可能存在 LOW_PRIORITY写入操作永远被阻塞的情况。如果前面的读取操作在进行的过程中一直有其它的读取操作到达,那么新的请求都会插入到 LOW_PRIORITY写入操作之前。

CONCURRENT修饰符使用load data ,如果使用满足并发插入条件CONCURRENT的MYISAM表指定(即,中间不包含空闲块),则其他会话可以在执行load data时从表中检索数据。即使没有其他会话同时使用该表,使用该CONCURRENT选项load data也会影响某个位的性能。

输入文件名:文件名必须以文字字符串形式给出。在Windows上,将路径名中的反斜杠指定为正斜杠或加倍反斜杠(重点)

分隔符:fields关键字指定了文件记段的分割格式,如果用到这个关键字,MySQL剖析器希望看到至少有下面的一个选项: terminated by:分隔符,意思是以什么字符作为分隔符

enclosed by:字段括起字符

escaped by:转义字符 lines terminated by:描述字段的分隔符,默认情况下是tab字符(\t) 当我们要导入到MySQL表中的文本文件具有以逗号','分隔的值或者可能与冒号‘:’,分号 ';' 之间的任何其他分隔符分隔时,应使用'FIELDS TERMINATED BY'选项。

最终语法如下: LOAD DATA INFILE 'path/to/file.csv'

INTO TABLE table_name

FIELDS TERMINATED BY ','

ENCLOSED BY '"'

LINES TERMINATED BY '\n'

IGNORE 1 ROWS;

我在刚开始导入的文件路径格式如下:

load data infile 'C:\ProgramData\MySQL\MySQL Server8.0\Uploads\XXX.csv'

遇到错误:ERROR 1290 (HY000): The MySQL server is running with the --secure-file-priv option so it cannot execute this statement

通过查询语句 show variables like '%secure%'; 查到--secure-file-priv--位置将要导入的文件放在--secure-file-priv--相应位置后依然出现1290错误,将网上的各种办法逐一试过后发现是文件路径书写错误(汗。。。),最终通过如下语句成功导入数据:

历时将近1个小时,虽然时间也不短,但是相较图形界面引导导入而言导入速度更快。 最后再说一点,我在审核导入语句时曾用过 lines terminated by '\r\n'; 结果只能导入一行,那肯定是换行的问题,网友给的解释是:如果已经在Windows系统中生成了文本文件,可能必须使用LINES TERMINATED BY ‘\r\n’来正确地读取文件,因为Windows程序通常使用两个字符作为一个行终止符。(我的理解就是如果导入的是txt文件,那就用lines terminated by '\r\n',否则就用lines terminated by '\n')

最后,希望以后我们都能高效的导入数据量大的数据文件。

mysql导入亿级数据_如何将上亿条大容量数据导入MYSQL相关推荐

  1. 查询一个表中一个字段相同的数据_最实用MySQL 查询当天、本周,本月、上一个月的数据...

    MySQL 查询当天.本周,本月.上一个月的数据 mysql查询当天的所有信息: SELECT * FROM 表名 WHERE year(时间字段名)=year(now()) and month(时间 ...

  2. mysql数据库导入到excel表格数据_[转载]将EXCEL表格中的数据导入mysql数据库表中(两种方法)...

    今天项目上遇到需要将excel中的数据导入到数据库的classify表中,于是乎拼命上网查阅方法,发现以下两种方法比较可行: 在此之前先说说按照网上的说法我没有试验成功的方法,将excel文件xls保 ...

  3. mysql事务手写笔记_兴奋了!阿里技术官手写“MySQL笔记”,传授你年薪百万级干货...

    前言 MySQL重要吗?重要!为什么重要?因为它在Java企业级开发中非常常用,因为 MySQL 是开源免费的,并且方便扩展.阿里巴巴数据库系统也大量用到了 MySQL,因此它的稳定性是有保障的.My ...

  4. 【python 处理亿级数据】使用 Pandas 处理亿级数据

    此前有一篇文章<别老扯什么Hadoop了,你的数据根本不够大>指出:只有在超过5TB数据量的规模下,Hadoop才是一个合理的技术选择.事实确实如此,在数据分析领域,那么如何处理亿级数据呢 ...

  5. MySQL学生综合测评系统_大学生综合测评系统的设计和实现(MySQL)

    大学生综合测评系统的设计和实现(MySQL)(任务书,开题报告,中期检查表,毕业论文20000字,程序代码,数据库) 摘  要 本文详细介绍了本系统设计的基本方法.系统的需求分析.系统的架构设计和系统 ...

  6. struts2导入excel模板_「微干货」“人员其他数据导入”应用介绍

    前提概要 人员档案资料维护多种多样,经常碰到已经运行一段时间,并且人员档案的基本信息已维护好了:此时,又要补充诸如"教育经历"类似的多行数据,脑壳疼,如何录入可以简便,让我们一起来 ...

  7. mysql编写完怎么执行_面试官:一条MySQL更新语句是如何执行的?

    在面试中面试中如果被面试官问到在MySQL中一条更新语句是怎么执行的?,下面让我们来探究一下! 流程图 这是在网上找到的一张流程图,写的比较好,大家可以先看图,然后看详细阅读下面的各个步骤. 执行流程 ...

  8. mysql数据库访问300ms以上_[Java教程]一张900w的数据表,16s执行的SQL优化到300ms?...

    [Java教程]一张900w的数据表,16s执行的SQL优化到300ms? 0 2020-11-20 16:00:16 一,前言 证实 有一张财务流水表,未分库分表,目前的数据量为9555695,分页 ...

  9. sqoop mysql 乱码_请问一下,用sqoop导数据到mysql如果遇到字段编码是utf8mb4的情况怎么处理?...

    我要到的数据其中一个字段里应该是有表情符号,之前数据库的处理是把,字段编码修改成utf8mb4.但现在用sqoop导数据到mysql(对应字段已修改为utf8mb4),却报了如下错误. 谢谢. 15/ ...

最新文章

  1. MS DTC 无法正确处理 DC 升级/降级事件的解决
  2. 如何禁用<textarea>的调整大小抓取器? [重复]
  3. linux+while循环多条件,有效的while循环条件客户端选择(TCP连接在Linux - C)
  4. php控制器无限极分类,thinkphp无限极分类实现方法
  5. Layout动画:在android布局发生变化时添加动画效果
  6. java怎样开关语句随机数 不重复_怎样用java产生一个指定范围而且不重复的随机数?...
  7. Kafka、RabbitMQ、RocketMQ等消息中间件的对比 —— 消息发送性能和区别
  8. C++预处理和头文件保护符
  9. python --- 二分查找算法
  10. Android 事件分发,分发机制
  11. Scala学习笔记01:Scala概述、安装配置、简单使用
  12. 什么软件画er图方便_er图绘制工具|er图绘制工具(powerdesigner) v16.5 免费版 - 软件下载 - 绿茶软件园|33LC.com...
  13. 要写好综述类论文?这几个点你需要注意
  14. DataWhale-动手数据分析-Task01:数据加载及探索性数据分析
  15. 动手学深度学习day-two
  16. Python Flask学习_使用flask-login实现认证蓝本(二)
  17. tt服务器系统,TT服务器使用手册.doc
  18. 移植python到小米路由器记录。
  19. Kubernetes集群安装 gatekeeper
  20. Python文件操作-文本文件、二进制文件、csv文件的读取写入、OS、shutil、CSV模块、常用字符编码

热门文章

  1. 这是“我”的故事 —— 崔晨洋
  2. 数据共享交换平台的问题及解决方案
  3. Java -Stream流和常见函数式接口
  4. 有什么低价好用的电容笔推荐?大一新生必备物品
  5. JavaScript 中清空数组的几种方法
  6. Python3 实现 Redis 消息队列
  7. android zip解压进度_android zip4j之--解压zip文件并实时显示解压进度
  8. ROS笔记(二) SolidWorks to URDF 并实现可视化
  9. android rtsp server or clinet work success
  10. 软件测试 接口测试 Jmeter 5.5 安装教程