mysql load data infile的施用

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

mysql load data infile的施用

相关文章:

你感兴趣的文章:

标签云: