mysql load data infile的使用
LOAD DATA [LOW_PRIORITY | CONCURRENT] [LOCAL] INFILE ‘file_name.txt’
???[REPLACE | IGNORE]
??INTO TABLE tbl_name
???[FIELDS
????[TERMINATED BY ‘string’]
???[[OPTIONALLY] ENCLOSED BY ‘char’]
???[ESCAPED BY ‘char’ ]
?]
???[LINES
???[STARTING BY ‘string’]
??[TERMINATED BY ‘string’]
??]
???[IGNORE number LINES]
??[(col_name_or_user_var,…)]
???[SET col_name = expr,…]]
LOAD DATA INFILE 语句以很高的速度从一个文本文件中读取行到一个表中。文件名必须是一个文字字符串。
关于 INSERT 与 LOAD DATA INFILE 的效率和提高 LOAD DATA INFILE 速度的更多信息,参考管理员手册中的加速 INSERT 语句 。
系统变量 character_set_database 所指出的字符集被用来解释文件中的信息。SET NAMES 和设置 character_set_client 不会影响输入的解释。
用户也可以使用 import 实用程序装载数据文件;它通过发送一个 LOAD DATA INFILE 命令到服务器来实现。–local 选项使得 import 从客户端主机读取数据文件。如果客户端与服务器支持压缩协议,用户可以指定 –compress 选项,以在较慢的网络中获得更好的性能。参考管理员手册中的 import — 数据导入程序 。
如果用户指定关键词 LOW_PRIORITY,LOAD DATA 语句的执行将会被延迟,直到没有其它的客户端正在读取表。
如果一个 GSSYS 表满足同时插入的条件(即该表在中间有空闲块),并且您对这个 GSSYS 表指定了 CONCURRENT,则当 LOAD DATA 正在执行时,其它线程会从表中重新获取数据。即使没有其它线程在同时使用本表格,使用本选项也会略微影响 LOAD DATA 的性能。
如果指定了 LOCAL 关键字,它将对连接的客户端做出解释:
- 如果指定了 LOCAL,客户端主机上的客户端组件读取文件并发送到服务器。可以给出文件的完整路径以确定其精确位置。如果给出的是相对路径,则文件名是相对于客户端组件启动时所在的目录。
- 如果没有指定 LOCAL,文件是位于服务器的主机上,并且直接被服务器读取。
当从服务器主机定位文件时,服务器使用下列规则:
- 如果给定完整的路径,服务器使用该路径名。
- 如果给定一个或多个前置构件的相对路径,服务器以相对服务器的数据目录搜索文件。
- 如果给定没有前置构件的文件名,服务器从当前数据库的数据库目录搜寻文件。
?注意: |
?这些规则意味着,一个以 ‘/gsfile.txt’ 给出的文件是从服务器的数据目录中读取的,然而,以 `gsfile.txt’ 给出的一个文件是从当前数据库的数据目录下读取的。举例来说,下面的 LOAD DATA 语句从 db1 数据库目录下读取文件 ‘data.txt’,因为 db1 是当前数据库,即使语句明确把文件载入到db2数据库中的表里,也会从 db1 目录中读取: |
免责声明: 本文仅代表作者个人观点,与无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
相关资料
推荐阅读
友情链接:
Copyright © 2013-2023 页 当前在线:498人 网站在4时47分1秒内访问总人数:46214人 当前 2.28%
<table width="6