问题:

需要在mysql中造大量的数据。

方式:

一、insert 一条一条插入数据到数据库中。 不适合大量数据的插入。

二、LOAD DATA INFILE 方案

三、extend insert语句(批量插入)

四、使用 mysqlimport 导入数据

优先文案:

二、LOAD DATA INFILE

如果你正在寻找提高原始性能的方案,这无疑是你的首选方案。

LOAD DATA INFILE 是一个专门为 MySQL 高度优化的语句,它直接将数据从 CSV / TSV 文件插入到表中。

注意:

导入的csv/tsv文件的文件名需要与数据库的表名相同。列的顺序与配置文件中的相同。如果第一行是列名,导入时,需要忽略第一行。

如下为一个csv文件示例, csv一般以逗号分隔。

id,tt

200000000000000000000000,200000000000000000000000 200000000000000000000001,200000000000000000000001

1、有两种方法可以使用 LOAD DATA INFILE。你可以把数据文件拷贝到服务端数据目录(通常 /var/lib/mysql-files/),并且运行:

LOAD DATA INFILE '/path/to/products.csv' INTO TABLE products;

2、直接从本地系统中读取。

LOAD DATA LOCAL INFILE '/path/to/products.csv' INTO TABLE products;

客户端文件系统中读取文件,将其透明地拷贝到服务端临时目录,然后从该目录导入。总而言之,这几乎与直接从服务器文件系统加载文件一样快,不过,你需要确保服务器启用了local_infile。如果该选项不能使用local选项。临时开户local_infile也是一个好的选择。

show VARIABLES like "local_infile";

MySQL :: MySQL 5.7 Reference Manual :: 5.1.7 Server System Variables

三、extend insert语句(批量插入)

INSERT INTO user (id, name) VALUES (1, 'Ben'), (2, 'Bob');

批量插入数据,一批插入多少,需要对比测试。

四、使用 mysqlimport 导入数据

mysqlimport 客户端提供了 LOAD DATA INFILEQL 语句的一个命令行接口。mysqlimport 的大多数选项直接对应 LOAD DATA INFILE 子句。

从文件 dump.txt 中将数据导入到 mytbl 数据表中, 可以使用以下命令:

mysqlimport --ignore-lines=1 --fields-terminated-by=, --verbose --local -u root query C:/mysql/bin/mysql-files/address.csv
mysqlimport -h 127.0.0.1 -uxxxx -pxxx --ignore-lines=1 --fields-terminated-by=, --verbose --local address address.csv

mysqlimport的常用选项介绍

选项

功能

-d or --delete

新数据导入数据表中之前删除数据数据表中的所有信息

-f or --force

不管是否遇到错误,mysqlimport将强制继续插入数据

-i or --ignore

mysqlimport跳过或者忽略那些有相同唯一 关键字的行, 导入文件中的数据将被忽略。

-l or -lock-tables

数据被插入之前锁住表,这样就防止了, 你在更新数据库时,用户的查询和更新受到影响。

-r or -replace

这个选项与-i选项的作用相反;此选项将替代 表中有相同唯一关键字的记录。

--fields-enclosed- by= char

指定文本文件中数据的记录时以什么括起的, 很多情况下 数据以双引号括起。 默认的情况下数据是没有被字符括起的。

--fields-terminated- by=char

指定各个数据的值之间的分隔符,在句号分隔的文件中, 分隔符是句号。您可以用此选项指定数据之间的分隔符。 默认的分隔符是跳格符(Tab)

--lines-terminated- by=str

此选项指定文本文件中行与行之间数据的分隔字符串 或者字符。 默认的情况下mysqlimport以newline为行分隔符。 您可以选择用一个字符串来替代一个单个的字符: 一个新行或者一个回车。

参考文档:

[译] MySQL 最佳实践 —— 高效插入数据 - 知乎

数据库数据快速插入的方法相关推荐

  1. kafka mysql 迁移_一种Kafka与Elasticsearch数据库数据的互相迁移方法与流程

    本发明属于数据库迁移领域,具体地讲涉及一种kafka与elasticsearch数据库数据的互相迁移方法. 背景技术: 实现数据共享,可以使更多的人更充分地使用已有数据资源,减少资料收集.数据采集等重 ...

  2. PLSQL如何将千万数据快速插入到另一张表中_数据库设计中的 9 大常见错误

    作为数据库设计人员,当我们负责数据库项目时,在数据库设计以及把数据库部署到生产环境的过程中可能会遇到一些挑战. 其中一些问题不可避免,也无法控制.但是,其中相当一部分可以追溯到数据库设计本身的质量.我 ...

  3. 大神教程,如何在Mysql数据库中快速插入一百万条数据详细解读!!!

    1.首先找到mysql文件夹中 2.修改配置,保存 3.打开cmd命令行,进入到mysql,创建两个表,一个是内存表,一个是新表,在内存表中添加完数据(内存表中添加数据速度快2分50秒左右),然后将数 ...

  4. 关于达梦数据库数据迁移工具的使用方法(DTS)

    一.通过达梦数据库自带的迁移工具进行导入 1.打开迁移工具 (1).window环境下: (2)LINUX 命令行进入dm安装目录tool目录下 ./dts启动数据库迁移工具 2.新建工程,输入工程名 ...

  5. Mysql5.7, 千万数据快速插入解决方案( JDBC方式, 百秒搞定!!!)

    最近在弄一件任务,要求测试一下从文本中读取数据,然后向mysql表中插入.要求用JDBC线程导入.要求效率. 环境说明: 数据量 : 10058624条  (大约一千零6万条数据,本地机器运行) 数据 ...

  6. MySQL快速插入亿级数据

    MySQL快速插入亿级数据 前言 通常我们会有这样的需求:构造数据,大批量插入数据库,以供后续处理.如果是几万几十万的数据那还好说,但如果是上千万上亿的数据,那么我们对速度的追求就更加迫切. 这里我们 ...

  7. 【转】几种数据库的大数据批量插入

    在之前只知道SqlServer支持数据批量插入,殊不知道Oracle.SQLite和MySql也是支持的,不过Oracle需要使用Orace.DataAccess驱动,今天就贴出几种数据库的批量插入解 ...

  8. Pandas数据处理方法(包括数据库数据和普通文件数据)

    pandas是一个强大的分析结构化数据的工具集:它的使用基础是Numpy(提供高性能的矩阵运算):用于数据挖掘和数据分析,同时也提供数据清洗功能. Pandas中常见的数据结构有两种: Series ...

  9. EF里查看/修改实体的当前值、原始值和数据库值以及重写SaveChanges方法记录实体状态...

    EF里查看/修改实体的当前值.原始值和数据库值以及重写SaveChanges方法记录实体状态 原文:EF里查看/修改实体的当前值.原始值和数据库值以及重写SaveChanges方法记录实体状态 本文目 ...

最新文章

  1. 青龙羊毛——飞鸽花转省毛毛(搬运)
  2. Ubuntu下安装ulipad
  3. 软件调试学习笔记(七)—— 单步步入单步步过
  4. OCP读书笔记(16) - 管理资源
  5. LeetCode--11_974_Subarray_Sums_Divisible_by_K
  6. python3.8图片_python3.8.3官方中文文档[PDF][CHM][31.14MB]
  7. Linux+.NetCore+Nginx搭建集群
  8. C语言程序判断计算机的CPU大小端
  9. LeetCode 822. 翻转卡片游戏(哈希)
  10. php web server setup,PHP本地开发利器:内置Web Server
  11. shell for循环两个变量并列_从Go汇编角度解释for循环的两个疑点
  12. LeetCode 357. 计算各个位数不同的数字个数(动态规划)
  13. ubuntu下搭建tftp服务器并且验证功能
  14. XlsxWriter的使用
  15. revit 转换ifc_将IFC转换成GLTF格式
  16. bt5 note [7] 无线破解
  17. linux中设置ssh登录时显示的banner
  18. 西安工大计算机学院李颖,李颖 -西安交通大学人文社会科学学院
  19. nodejs 传递参数
  20. Python网络爬虫与信息提取(中国大学mooc)

热门文章

  1. jdk8 linux 32位 安装包 微云网盘下载
  2. android studio构建项目出错:Cannot create directory C:\Program Files\Java\avd\.android
  3. 《奇点来临》——人类进化的未来
  4. 微信小程序短信验证码 php,微信小程序中短信验证码登录全流程及代码
  5. IEEE TRANSACTIONS ON MULTIMEDIA(TMM) 投稿经验
  6. 人工智能应用加持,戴尔科技升级混合办公新体验
  7. 计算机二级备考:Word 部分_2 排版
  8. 信号与系统——第一章 绪论
  9. 智能小区物业管理系统
  10. 高频电路中的电阻衰减网络