设为首页 加入收藏

TOP

MySQL优化之――备份和恢复(八)
2015-11-21 01:47:11 来源: 作者: 【 】 浏览:10
Tags:MySQL 优化 备份 恢复
pr,...]]

?

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,新行将代替有相同的唯一键值的现有行。

(1)如果你指定ignore,跳过有唯一键的现有行的重复行的输入。

(2)如果你不指定任何一个选项,当找到重复键时,出现一个错误,并且文本文件的余下部分被忽略。

FIELDS TERMINATED BY ','表示字段之间用逗号分隔

ENCLOSED BY '\''表示每个字段用双引号括起来

ESCAPED BY '\''表示将系统默认的转移字符替换为单引号

LINES STARTING BY ''表示每行数据开头的字符,可以为单个或多个,默认不是有任何字符

LINES TERMINATED BY '\r\n'表示每行以回车换行符结尾,保证每一条记录占一行

[IGNORE number LINES] 选项表示忽略文件开始处的行数,number表示忽略的行数。

基本上格式上的参数跟SELECT...INTO OUTFILE是一样的

使用LOAD DATA命令将C:\person0。txt文件中的数据导入到test库中的test表

?

LOAD DATA INFILE 'C:\person0.txt' INTO TABLE test.person

?

先删除person表里的数据,然后执行LOAD DATA命令

\

使用mysqlimport命令导入文本文件

2、使用mysqlimport命令导入文本文件

mysqlimport是一个单独的exe,他提供了许多与LOAD DATA INFILE语句相同的功能

大多数选项直接对应LOAD DATA INFILE子句

\

mysqlimport的语法如下

?

mysqlimport -u root -p dbname filename.txt  [OPTIONS]
--[OPTIONS] 选项
FIELDS  TERMINATED BY 'value'
ENCLOSED BY 'value'
ESCAPED BY 'value'
LINES TERMINATED BY 'value'
IGNORE LINES

?

[OPTIONS] 选项基本上与LOAD DATA INFILE 语句是一样的,这里不做介绍了

mysqlimport不能指定导入的表名称,表名称由导入文件名称确定,即文件名作为表名,导入数据之前该表必须存在

使用mysqlimport命令将C:\目录下person.txt文件内容导入到test库

先删除test库的person表的数据

?

DELETE FROM `person`;

?

person.txt文件内容

?

1    green    29    lawer
2    suse    26    dancer
3    evans    27    sports man
4    mary    26    singer

?

命令如下

?

mysqlimport -u root -p  test C:\person.txt

?

\

导入成功

\

mysqlimport的常见选项:

?

显示帮助消息并退出。

·         --columns=column_list, -c column_list

该选项采用用逗号分隔的列名作为其值。列名的顺序指示如何匹配数据文件列和表列。

·         --compress,-C

压缩在客户端和服务器之间发送的所有信息(如果二者均支持压缩)。

·         ---debug[=debug_options],-# [debug_options]

写调试日志。debug_options字符串通常是'd:t:o,file_name'。

·         --delete,-D

导入文本文件前清空表。

·         --fields-terminated-by=...,--fields-enclosed-by=...,--fields-optionally-enclosed-by=...,--fields-escaped-by=...,--lines-terminated-by=...

这些选项与LOAD DATA INFILE相应子句的含义相同。参见13.2.5节,“LOAD DATA INFILE语法”。

·         --force,-f

忽视错误。例如,如果某个文本文件的表不存在,继续处理其它文件。不使用--force,如果表不存在则mysqlimport退出。

·         --host=host_name,-h host_name

将数据导入给定主机上的MySQL服务器。默认主机是localhost。

·         --ignore,-i

参见--replace选项的描述。

·         --ignore-lines=n

忽视数据文件的前n行。

·         --local,-L

从本地客户端读入输入文件。

·         --lock-tables,-l

处理文本文件前锁定所有表以便写入。这样可以确保所有表在服务器上保持同步。

·         --password[=password],-p[password]

当连接服务器时使用的密码。如果使用短选项形式(-p),选项和 密码之间不能有空格。如果在命令行中--password或-p选项后面没有 密码值,则提示输入一个密码。

·         --port=port_num,-P port_num

用于连接的TCP/IP端口号。

·         --protocol={TCP | SOCKET | PIPE | MEMORY}

使用的连接协议。

·         --replace,-r

--replace和--ignore选项控制复制唯一键值已有记录的输入记录的处理。如果指定--replace,新行替换有相同的唯一键值的已有行。如果指定--ignore,复制已有的唯一键值的输入行被跳过。如果不指定这两个选项,当发现一个复制键值时会出现一个错误,并且忽视文本文件的剩余部分。

·         --silent,-s

沉默模式。只有出现错误时才输出。

·         --socket=path,-S path

当连接localhost时使用的套接字文件(为默认主机)。

·         --user=user_name,-u user_name

当连接服务器时MySQL使用的用户名。

·         --verbose,
首页 上一页 5 6 7 8 9 下一页 尾页 8/9/9
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇MySql5.6Window超详细安装教程 下一篇警惕MySql更新sql的WHERE从句中的..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: