最近应公司要求,在做数据库的导入导出。经查询每天的数据量在350W条左右。经过大量测试,感觉以下方法比较好

数据导出SELECT INTO…OUTFILE

 基本语法:

SELECT

[INTO OUTFILE 'file_name'

[CHARACTER SET charset_name]

export_options

| INTO DUMPFILE 'file_name'

| INTO var_name [, var_name]]

该语句分为两个部分。前半部分是一个普通的SELECT语句,通过这个SELECT语句来查询所需要的数据;后半部分是导出数据的。其中,“目标文件”参数指出将查询的记录导出到哪个文件中;“OPTION”参数为可选参数选项,其可能的取值有:

  • FIELDS TERMINATED BY '字符串':设置字符串为字段之间的分隔符,可以为单个或多个字符。默认值是“\t”。
  • FIELDS ENCLOSED BY '字符':设置字符来括住字段的值,只能为单个字符。默认情况下不使用任何符号。
  • FIELDS OPTIONALLY ENCLOSED BY '字符':设置字符来括住CHAR、VARCHAR和TEXT等字符型字段。默认情况下不使用任何符号。
  • FIELDS ESCAPED BY '字符':设置转义字符,只能为单个字符。默认值为“\”。
  • LINES STARTING BY '字符串':设置每行数据开头的字符,可以为单个或多个字符。默认情况下不使用任何字符。
  • LINES TERMINATED BY '字符串':设置每行数据结尾的字符,可以为单个或多个字符。默认值是“\n”。FIELDS和LINES两个子句都是自选的,但是如果两个子句都被指定了,FIELDS必须位于LINES的前面。

例子

        SELECT * INTO OUTFILE 'E:/data.txt' FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY '\n' FROM dl.datas

        导出结果:

       


数据导入load data infile

基本语法:
load data [low_priority] [local] infile 'file_name txt' [replace | ignore]
into table tbl_name
[fields
[terminated by't']
[OPTIONALLY] enclosed by '']
[escaped by'\' ]]
[lines terminated by'n']
[ignore number lines]
[(col_name, )]

load data infile语句从一个文本文件中以很高的速度读入一个表中。使用这个命令之前,mysqld进程(服务)必须已经在运行。为了安全原因,当读取位于服务器上的文本文件时,文件必须处于数据库目录或可被所有人读取。另外,为了对服务器上文件使用load data infile,在服务器主机上你必须有file的权限。

1 如果你指定关键词low_priority,那么MySQL将会等到没有其他人读这个表的时候,才把插入数据。可以使用如下的命令:

load data low_priority infile "/home/mark/data sql" into table Orders;

2 如果指定local关键词,则表明从客户主机读文件。如果local没指定,文件必须位于服务器上。

3 replace和ignore关键词控制对现有的唯一键记录的重复的处理。如果你指定replace,新行将代替有相同的唯一键值的现有行。如果你指定ignore,跳过有唯一键的现有行的重复行的输入。如果你不指定任何一个选项,当找到重复键时,出现一个错误,并且文         本文件的余下部分被忽略。例如:load data low_priority infile "/home/mark/data sql" replace into table Orders;

4 分隔符

(1) fields关键字指定了文件记段的分割格式,如果用到这个关键字,MySQL剖析器希望看到至少有下面的一个选项: 
       terminated by分隔符:意思是以什么字符作为分隔符
       enclosed by字段括起字符
      escaped by转义字符
terminated by描述字段的分隔符,默认情况下是tab字符(\t) 
       enclosed by描述的是字段的括起字符。
     escaped by描述的转义字符。默认的是反斜杠(backslash:\ )

例子

load data low_priority local infile "E:/data.txt" replace into table datas fields terminated by ',' enclosed by '"' escaped by '"' lines terminated by '\n';

mysql 千万级数据的导入导出相关推荐

  1. mysql千万级数据查询select、插入insert慢 可能原因总结

    mysql千万级数据查询select.插入insert慢 可能原因总结 表连表查询 并 insert ,insert into -select -from- insert into T1(XX,XX) ...

  2. MYSQL常用命令大全(导入导出、创建、单多表查询(超详细)、授权)

    MYSQL常用命令 一.导入导出 1.导出整个数据库 mysqldump -u 用户名 -p --default-character-set=latin1 数据库名 > 导出的文件名(数据库默认 ...

  3. Linux下导出MySQL为SQL文件_MySQL导入导出.sql文件步骤

    MySQL导入导出.sql文件步骤如下: 一.MySQL的命令行模式的设置: 桌面->我的电脑->属性->环境变量->新建-> PATH=":path\mysq ...

  4. php mysql 命令行模式_MySQL_MYSQL导入导出sql文件简析,一.MYSQL的命令行模式的设置- phpStudy...

    MYSQL导入导出sql文件简析 一.MYSQL的命令行模式的设置 桌面->我的电脑->属性->环境变量->新建-> PATH=":path\mysql\bin ...

  5. mysql enclosed by_MySql csv文件导入导出

    一.导出到csv(本地导出) 通过mysql客户端shell连接到服务器,选择使用的数据库,输入sql代码: select * from test_info into outfile '/tmp/te ...

  6. hive向mysql导数据_Mysql Hive 导入导出数据

    ---王燕行转列sql select split(concat_ws(',',collect_set(cast(smzq as string))),',')[1] ,split(concat_ws(' ...

  7. MySQL千万级数据进行插入,基础数据3千万,插入1千万数据时间约为4.7分钟,10个线程同时插入

    测试MySQL千万条数据插入速度 使用多线程,每条线程处理数据100万条,每次插入携带数据7万条进行提交 数据库基数为0,插入1000万条数据,时间为311957毫秒,也就是311.957秒,约为5. ...

  8. mysql 存储引擎和数据导入导出

    存储引擎 mysql服务软件自带的功能程序,处理表的处理器 每种不同的存储引擎有不同的功能和数据存储方式 show engine 查看引擎 修改引擎 停止服务 修改配置文件 [mysqld] defa ...

  9. mysql数据与Hadoop之间导入导出之Sqoop实例

    前面介绍了sqoop1.4.6的 如何将mysql数据导入Hadoop之Sqoop安装,下面就介绍两者间的数据互通的简单使用命令. 显示mysql数据库的信息,一般sqoop安装测试用 sqoop l ...

最新文章

  1. 阿里老员工吐槽:新员工水平差!不服管理!还不加班!我要汇报经理让对方无法转正!...
  2. 【Lua】撸啊!第一弹:Lua开发环境搭建(Mac OS X)
  3. python个人博客源码_我的使用Sanic的个人博客源码开源了!
  4. 64 os 驱动签名
  5. Linux opencv安装与编译
  6. 共阳极数码时钟c语言程序,基于51单片机C语言数字钟程序.doc
  7. linux wifi关闭5g,TP-Link路由器如何关闭5G无线Wi-Fi信号?
  8. php dede 发布时间_dede 采集到数据后,发布日期变为本地日期解决方法
  9. asp.net Session丢失问题
  10. kl散度度量分布_概率图简要模型笔记(二)马尔可夫随机场与KL散度、最大熵、指数族分布、高斯分布、极大似然分布...
  11. 中职计算机专业选修课程,《办好中职学校计算机专业的几点思考.doc
  12. kali安装步骤失败 选择并安装软件_7Zip v19.00 软件安装步骤
  13. 当identity_insert 设置为off时不能为表_最近新get日志测试方法,再也不用为故障响应慢发愁!...
  14. 这几天可能是长时间关注电脑,眼睛没有得到休息,所以就早上起来眼睛有点通...
  15. 负载均衡与服务器架构
  16. 如何用计算机测量图片景深,景深(摄影测量与遥感学术语 .)_百度百科
  17. 计算机睡眠和休眠的区别win10,win10睡眠和休眠有何不同_win10休眠和睡眠的区别...
  18. 电容击穿之后是开路还是短路?
  19. 错误1406.无法将数值写入键/Software/Classess/.htm/OpenWithList/devenv.exer的解决方案
  20. XCTF-攻防世界CTF平台-Web类——19、mfw(.Git源代码泄露、php的assert断言)

热门文章

  1. eTom学习浅显理解
  2. 一首诗,致亲爱的csdn
  3. 富文本框显示OLE对象
  4. java虚拟机在哪配置参数,Java虚拟机(JVM)参数配置说明
  5. java.lang.IllegalArgumentException: SimpleMessageConverter only supports String, byte[] and Serializ
  6. CCProxy代理上网设置方法
  7. JAVA_SE_Day02
  8. EC-R3566PC四核64位嵌入式主机
  9. 我的专业我做主计算机演讲稿,我的管理我做主演讲稿
  10. 备案域名绑定服务器后 提示需要备案_最近有人问我:买了个域名,怎么用不了?域名究竟该怎么用?...