`

mysql infile/outfile 导入导出

 
阅读更多
第一种方式:通过SELECT 语句以及 LOAD FILE来导出导入文本文件

这种方式不会引起行锁定。

命令:
SELECT * INTO OUTFILE 'D:/sql/test.txt'

FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' 

ESCAPED BY '"'

FROM  test;


说明:

-- FIELDS 指定字段的参数

-- FIELDS TERMINATED BY 字段之间的分割符,默认是/t,这里改成逗号

-- ESCAPED BY 对特殊字符的转义,默认是使用右斜杠/, 这里改成双引号,这样的话一个双引号就会被转义成2个双引号了

-- LINES 指定行的参数

-- STARTING BY 行最开始附加的内容,我们不需要加,所以设置为空即可

-- TERMINATED BY 指定行结束附加的内容,我们加上换行符,这也是默认的配置

所形式的文件格式为:
64,"dddd",1,1266768001,"221.232.128.170",3006
65,"macbook",1,1266768001,"219.140.248.161",3006
说明:
1.现在是以”,”来作为分割符。
2.根据不同的数据类型,来进行了转义以及加上了引号。
进行导入


load data infile 'd:/sql/test.txt' into table test

FIELDS TERMINATED BY ',' ENCLOSED BY '"'

ESCAPED BY '"'  ; 


这样的话,导入数据的速度会提高三倍左右不过要注意的是它进行导出时的速度与mysqldump的方式来导出的速度没有太大的区别。
不过要注意的地方:

1. 用 load data 是较快的方法
2. 大数据量情况下, 最好是创建好表之后, 同时也要创建好相关的索引。 虽然说没有索引时导入更快, 但是数据导入完成之后再创建索引总共的耗时比事先创建好了再导入要来的多多了。
另外,如果是myisam表,则最好是导入之前先禁用表的索引,导完之后再启用;或者是一开始不创建索引,导完之后再创建,都会比导入的同时更新索引来的快很多.

mysql>ALTER TABLE tbl2 DISABLE KEYS;
Query OK, 0 rows affected (0.00 sec)

mysql>INSERT INTO tbl2 SELECT * FROM tbl1;
Query OK, 2000000 row affected (36.30 sec)
Records: 2000000  Duplicates: 0  Warnings: 0

mysql>ALTER TABLE tbl2 ENABLE KEYS;
Query OK, 0 rows affected (44.55 sec)

在大批量导入时先禁用索引, 在完全导入后, 再开启索引, 一次性完成重建索引的效率会相对高很多, 经过反复几次测试, 感觉后者基本能比前者快 1.2 倍左右. 这也就是 LOAD DATAL INFILE 相对较快的原因之一.



分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    MySQL数据导入导出

    在数据导入方面,MySQL提供了LOAD DATA INFILE 语句来实现数据的导入。使用该语句可以从文本文件中导入数据到数据库的表中。与 SELECT INTO OUTFILE 相反,LOAD DATA INFILE 不能导入表结构,仅限于导入数据。此外,...

    MySQL数据导入导出各类型文件

    MySQL 数据导入导出是数据库管理中的重要操作,用于数据备份、迁移或在不同系统间交换数据。本篇文章主要探讨如何使用MySQL命令行和特定软件来导入导出不同类型的文件,如txt、sql和csv。 首先,数据导出可以通过两...

    用SELECT… INTO OUTFILE语句导出MySQL数据的教程

    以下是关于使用SELECT… INTO OUTFILE导出MySQL数据的详细解释: 1. **基本语法**: SELECT… INTO OUTFILE语句的基本形式是: ```sql SELECT column1, column2, ... INTO OUTFILE 'filename' [FIELDS ...

    mysql数据导入导出php版 mysql数据导入导出php版

    总结,使用PHP进行MySQL数据导入导出涉及到的知识点包括:PHP执行shell命令、PDO和MySQLi扩展的使用、`mysqldump`和`mysqlimport`工具、`SELECT INTO OUTFILE`和`LOAD DATA INFILE` SQL语句、数据分批处理、事务管理...

    MySQL数据备份和恢复(导出和导入)

    #### 一、使用 `INFILE` 和 `OUTFILE` 进行数据导入与导出 在日常的数据库管理工作中,经常需要将一个数据库中的部分数据移动到另一个数据库中去。对于这种情况,使用 `mysqldump` 方法可能会显得有些繁琐。相比之...

    MySql数据导入导出

    `LOAD DATA INFILE` 是MySQL提供的一种直接从文件中读取数据并导入到表中的功能,尤其适用于大规模数据的快速导入。 - **命令格式**: ```sql LOAD DATA [LOCAL] INFILE 'file_name' [REPLACE | IGNORE] INTO ...

    MySql示例9:表数据的导出和导入.zip

    如果数据是以CSV或其他文本格式存在,如`employees.csv`,可以使用`LOAD DATA INFILE` SQL语句导入: ```sql LOAD DATA INFILE '/tmp/employees.csv' INTO TABLE employees FIELDS TERMINATED BY ',' ENCLOSED BY '...

    MySQL+数据导入导出+实用技巧

    本文将详细介绍 MySQL 中数据导入导出的方法,包括 `SELECT INTO OUTFILE` 和 `LOAD DATA INFILE` 的使用,并提供一些实用技巧。 #### 二、数据导出:SELECT INTO OUTFILE ##### 2.1 基本概念 `SELECT INTO ...

    MySQL数据导入与导出

    与`SELECT INTO OUTFILE`相对应,MySQL提供了`LOAD DATA INFILE`语句用于将外部文件中的数据导入到数据库中。此语句特别适合从CSV文件导入大量数据,效率高且方便。 ```sql LOAD DATA INFILE 'a.txt' INTO TABLE ...

    MySQL数据导入导出.pdf

    当需要导入这些导出的数据时,可以使用`LOAD DATA INFILE`语句或者`mysql`命令行工具来读取SQL文件并执行其中的SQL语句。需要注意的是,导入导出过程中应确保数据的完整性和一致性,避免数据丢失或错误。在大型系统...

    MySQL数据库中数据导入与导出探析.pdf

    导入数据时,需要先将Excel数据清洗并保存为文本文件,确保字符编码与MySQL数据库中表的编码一致,然后使用`LOAD DATA INFILE`命令导入,如: ```sql LOAD DATA INFILE '/path/to/cleanedFile.txt' INTO TABLE ...

    数据库导入导出方法详解.doc

    在导入数据时,可以使用load data infile语句来导入数据,需要指定导入的文件名和路径,并且需要指定文件中的分隔符和换行符。例如,load data infile "/var/lib/mysql-files/passwd" into table 账号信息表 fields ...

    MySQL数据库迁移快速导出导入大量数据(外发).txt

    使用MySQL的SELECT INTO OUTFILE 、LOAD DATA INFILE快速导出导入数据 LOAD DATA INFILE语句从一个文本文件中以很高的速度读入一个表中。MySQL官方文档也说明了,该方法比一次性插入一条数据性能快20倍。

    MYSQL导入导出常用命令

    MySQL提供了多种方法来完成这一任务,包括使用`mysqldump`工具进行逻辑备份,以及利用`LOAD DATA INFILE`和`SELECT INTO OUTFILE`等语句进行物理备份。 #### 二、MySQL数据备份命令详解 **1. 备份整个数据库** `...

    MySQL导出数据遇到secure-file-priv问题的解决方法

    默认情况下,它可能被设置为一个特定的目录,比如`C:/ProgramData/MySQL/MySQL Server 5.7/Uploads`,只有在这个目录下,MySQL才允许执行`LOAD DATA INFILE`和`SELECT ... INTO OUTFILE`等涉及文件读写的操作。 ...

    用SELECT... INTO OUTFILE语句导出MySQL数据的教程

    INTO OUTFILE`语句需要MySQL用户的`FILE`权限。此外,输出文件必须不存在,以防止覆盖已有文件。在Unix系统中,创建的文件默认是世界可读的,并属于MySQL服务器用户。因此,你需要有适当的方法访问服务器主机并获取...

    java自动导入导出

    - SQL语句如`SELECT INTO OUTFILE`和`LOAD DATA INFILE`可用于MySQL等数据库的批量导入导出,但在Java程序中通常通过JDBC执行这些SQL来实现自动化。 3. **Linux环境下的Java程序**: - Java程序是跨平台的,因此...

    SQL语句导入导出大全

    1. **LOAD DATA INFILE**:MySQL中的LOAD DATA INFILE语句用于快速将大量数据从CSV或文本文件导入到数据库表中。它比INSERT语句更快,因为一次可以处理多行。 2. **BULK INSERT**:在SQL Server中,BULK INSERT语句...

    MySQL数据库迁移快速导出导入大量数据

    在涉及数据表结构调整的迁移中,如分区或分表,通常需要使用`SELECT INTO OUTFILE`和`LOAD DATA INFILE`命令进行快速导出和导入。这两个命令可以显著提高数据导入的速度,官方文档指出其效率是逐条插入的20倍。不过...

Global site tag (gtag.js) - Google Analytics