mysql导出导入文本文件的几种方式总结

您所在的位置:网站首页 怎么把txt数据导入到工作表 mysql导出导入文本文件的几种方式总结

mysql导出导入文本文件的几种方式总结

2024-07-14 22:17:54| 来源: 网络整理| 查看: 265

一、使用mysql命令导出文本文件

    mysql命令可以用来登录MySQL服务器,也可以用来还原备份文件,同时,mysql命令也可以导出文本文件。

    基本的语法格式如下:

mysql -u root -pPassword -e "SELECT 语句" dbname>C:\name.txt

    或者

mysql -u root -pPassword --execute="SELECT 语句" dbname>C:\name.txt

    其中:

Password表示root用户的密码。使用-e或者--execute选项就可以执行SQL语句。"SELECT 语句"用来查询记录。C:\name.txt表示导出文件的路径和文件名。

    在导出的文件中,不同列之间使用制表符分隔,第1行包含了各个字段的名称。

     另外使用mysql命令还可以指定查询结果的显示格式,如果某行记录字段很多,可能一行不能完全显示,此时可以使用--vartical参数,将每条记录分为多行显示。

     例如使用mysql命令导出example数据库下employee表中的记录到文本文件,使用--vertical参数显示结果。SQL代码如下:

1

mysql -u root -p --vertical -e "SELECT * FROM employee;" example>F:\backup\employee.txt

    SELECT的查询结果导出到文本文件之后,显示格式发生了变化,内容变成了垂直显示格式。如果employee表中记录内容很长,这样显示将会更加容易阅读。二、使用mysql命令导出xml文件

    使用mysql命令可以导出XML文件。基本的语法格式如下:

mysql -u root -pPassword --xml|-X -e "SELECT 语句" dbname>C:\name.xml

    或者

mysql -u root -pPassword --xml|-X --execute="SELECT 语句" dbname>C:\name.xml

    其中:

Password表示root用户的密码。使用-xml或者-X选项就可以导出xml格式的文件。使用-e或者--execute选项就可以执行SQL语句。"SELECT 语句"用来查询记录。C:\name.txt表示导出文件的路径和文件名。

    使用mysql命令导出example数据库中employee表中的记录到xml文件。SQL代码如下:

mysql -u root -p -X --execute="SELECT * FROM employee;" example>F:\backup\employee.xml

    如果在employee表存在中文内容,为了避免乱码。可以使用下面的语句代码:

mysql -u root -p -X --default-character-set=utf8 --execute="SELECT * FROM employee;" example>F:\backup\employee.xml

三、使用mysql命令导出html文件

    使用mysql命令可以导出HTML网页文件。基本的语法格式如下:

mysql -u root -pPassword --html|-H -e "SELECT 语句" dbname>C:\name.html

    或者

mysql -u root -pPassword --html|-H --execute="SELECT 语句" dbname>C:\name.html

    其中:

Password表示root用户的密码。使用--html或者-H选项就可以导出HTML格式的文件。使用-e或者--execute选项就可以执行SQL语句。"SELECT 语句"用来查询记录。C:\name.txt表示导出文件的路径和文件名。

    使用mysql命令导出example数据库中employee表中的记录到html文件。SQL代码如下:

mysql -u root -p --html --execute="SELECT * FROM employee;" example> F:\backup\employee.html 四、使用SELECT...INTO OUTFILE导出文本文件

     MySQL中,可以使用SELECT...INTO OUTFILE语句将表的内容导出为一个文本文件。其基本的语法格式如下:

1

SELECT [列名] FROM table [WHERE 语句] INTO OUTFILE '目标文件' [OPTION];

    该语句分为两个部分。前半部分是一个普通的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语句来导出example数据库下employee表的记录。其中,字段之间用“、”隔开,字符型数据用双引号括起来。每条记录以“>”开头。SQL代码如下:

SELECT * FROM example.employee INTO OUTFILE 'F:/backup/tb_chengji.txt' FIELDS TERMINATED BY '\、' OPTIONALLY ENCLOSED BY '\"' LINES STARTING BY '\>' TERMINATED BY '\r\n';

    FIELDS必须位于LINES的前面,多个FIELDS子句排列在一起时,后面的FIELDS必须省略;同样,多个LINES子句排列在一起时,后面的LINES也必须省略。

    如果在employee表中包含了中文字符,使用上面的语句则会输出乱码。此时,加入CHARACTER SET gbk语句即可解决这一个问题。修改SQL代码如下:

SELECT * FROM example.employee INTO OUTFILE 'F:/backup/tb_chengji.txt' CHARACTER SET gbk FIELDS TERMINATED BY '\、' OPTIONALLY ENCLOSED BY '\"' LINES STARTING BY '\>' TERMINATED BY '\r\n';

    “TERMINATED BY '\r\n'”可以保证每条记录占一行。因为Windows操作系统下“\r\n”才是回车换行。如果不加这个选项,默认情况只是“\n”。

    用root用户登录到MySQL服务器中,然后执行上述命令。

    提示:

    该语法中的“目标文件”被创建到服务器主机上,因此必须拥有文件写入权限(FILE权限)后,才能使用此语法。同时,“目标文件”不能是一个已经存在的文件。

    SELECT...INTO OUTFILE语句可以非常快速地把一个表转储到服务器上。如果想要在服务器主机之外的部分客户主机上创建结果文件,则不能使用SELECT...INTO OUTFILE语句。

五、使用mysqldump命令导出xml文件

    mysqldump命令还可以导出xml格式的文件。其基本的语法格式如下:

1

mysqldump -u root -p --xml|-X dbname table>C:\name.xml

    其中:

使用--xml或者-X选项就可以导出xml格式的文件。dbname表示数据库的名称。table表示表的名称。C:\name.xml表示导出的xml文件的路径和文件名。

    例如使用mysqldump命令将example数据库下的employee表可以导出为xml格式的文件。SQL代码如下:

1

mysqldump -u root -p -X example employee>F:\backup\employee.xml

六、使用mysqldump命令导出文本文件

     mysqldump命令还可以导出纯文本文件。其基本的语法格式如下:

mysqldump -u root -pPassword -T 目标目录 dbname [tables] [option];

    其中:

Password参数表示root用户的密码,密码紧挨着-p选项。-T:只有指定了-T参数,才可以导出纯文本文件。目标目录:是指导出的文本文件的路径。dbname参数表示数据库的名称。tables参数表示要导出的表的名称。如果不指定,则导出数据库dbname中所有的表。option为可选参数选项,这些选项需要结合-T选项使用。

    option常见的取值如下:

--fields-terminated-by=字符串:设置字符串为各个字段之间的分隔符,可以为单个或多个字符。默认值为制表符“\t”。--fields-enclosed-by=字符:设置字符来括住字段的值。--fields-optionally-enclosed-by=字符:设置字符括住CHAR、VARCHAR和TEXT等字符型字段,只能为单个字符。--fields-escaped-by=字符:设置转义字符,只能为单个字符。默认值为“\”。--lines-terminated-by=字符串:设置每行数据结尾的字符,可以为单个或多个字符。默认值为“\n”。

    使用mysqldump语句导出example数据库下的employee表的记录。其中,字段之间用“,”隔开,字符型数据用双引号括起来。SQL命令代码如下:

mysqldump -u root -p -T F:\backup\ example employee --fields-terminated-by=\, --fields-optionally-enclosed-by=\"--lines-terminated-by=\r\n

     其实,mysqldump命令也是调用SELECT...INTO OUTFILE语句来导出文本文件的。除此之外,mysqldump命令同时还生成了employee.sql文件,该文件中有表的结构和表中的记录。

    提示:

     与SELECT...INTO OUTFILE语句中的OPTIONS各个参数的设置不同,这里option各个选项等号后面的值不要用引号括起来。

七、MySQL使用mysqlimport命令导入文本文件

    MySQL中,可以使用mysqlimport命令将文本文件导入到MySQL数据库中。基本的语法格式如下:

mysqlimport -u root -pPassword [--local] dbname filename.txt [OPTION]

    其中,“Password”参数是root用户的密码,必须与-p选项紧挨着;“--local”是在本地计算机中查找文本文件时使用的;“dbname”参数表示数据库的名称;“filename.txt”参数指定了文本文件的路径和名称;“OPTION”为可选参数选项,其常见的取值有:

--fields-terminated-by=字符串:设置字符串为字段之间的分隔符,可以为单个或多个字符。默认值为制表符“\t”。--fields-enclosed-by=字符:设置字符来括住字段的值,只能为单个字符。--fields-optionally-enclosed-by=字符:设置字符括住CHAR、VARCHAR和TEXT等字符型字段,只能为单个字符。--fields-escaped-by=字符:设置转义字符,默认值为反斜线“\”。--lines-terminated-by=字符串:设置每行数据结尾的字符,可以为单个或多个字符,默认值为“\n”。--ignore-lines=n:表示可以忽略前n行。

    使用mysqlimport命令,将employee.txt文件中的记录导入到employee表中。操作步骤如下:

    1. 查看F:/backup/employee.txt文件中的内容。

    注意:

    如果employee.txt文件中包含了中文字符,则需要将employee表的字符集修改为gb2312,使employee.txt文件和employee表的字符集保持一致。否则,将记录导入到employee表中以后,会出现乱码的现象。当然,如果文本文件使用的是utf8字符集,那么,则需要将employee表的字符集修改为utf8。

    2. 如果没有employee表,则需要创建一个空employee表;如果该表已经存在,则将employee表中的数据全部删除。

    3. 本实例中,employee.txt文件使用的是中文gb2312字符集,现在将employee表同样设置为gb2312字符集。SQL代码如下:

mysql>ALTER TABLE employee DEFAULT character set gb2312; mysql>ALTER TABLE employee CONVERT TO character set gb2312;

    4. 使用mysqlimport命令,将employee.txt文件中的记录导入到employee表中。SQL代码如下:

mysqlimport -u root -p example F:/backup/employee.txt --fields-terminated-by=\、 --fields-optionally-enclosed-by=\" --lines-terminated-by=\r\n

    上面的语句要在一行中输入,要注意空格的使用。

mysqlimport选项

    除了前面介绍的几个选项之外,mysqlimport命令还支持许多选项。常见的选项如下:

--columns=column_list,-c column_list:该选项使用逗号分隔的列名作为其值。列名的顺序指示如何匹配数据文件列和表列。--compress,-C:压缩在客户端和服务器之间发送的所有信息(如果二者均支持压缩)。-d,--delete:导入文本文件之前清空表。--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:沉默模式。只有出现错误时才输出信息。--user=user_name,-u user_name:当连接服务器时MySQL使用的用户名。--verbose,-v:冗长模式。打印出程序操作的详细信息。--version,-V:显示版本信息并退出。

以下内容必须注意

1)secure_file_priv参数说明 MYSQL新特性secure_file_priv对读写文件的影响                          1290 - The MySQL server is running with the --secure-file-priv option so it cannot execute this statement

secure-file-priv特性 secure-file-priv参数是用来限制LOAD DATA, SELECT ... OUTFILE, and LOAD_FILE()传到哪个指定目录的。

ure_file_priv的值为null ,表示限制mysqld 不允许导入|导出

当secure_file_priv的值为/tmp/ ,表示限制mysqld 的导入|导出只能发生在/tmp/目录下

当secure_file_priv的值没有具体值时,表示不对mysqld 的导入|导出做限制

如何查看secure-file-priv参数的值:

show global variables like '%secure%'; mysql> show global variables like '%secure%'; Variable_nameValuerequire_secure_transportOFFsecure_authONsecure_file_priv/var/lib/mysql-files/

3 rows in set (0.02 sec)

MYSQL新特性secure_file_priv对读写文件的影响 此开关默认为NULL,即不允许导入导出。

解决问题:windows下:修改my.ini 在[mysqld]内加入secure_file_priv =

linux下:修改my.cnf 在[mysqld]内加入secure_file_priv = MYSQL新特性secure_file_priv对读写文件的影响 然后重启mysql,再查询secure_file_priv

2) ERROR 1148 (42000): The used command is not allowed with this MySQ...

1.load data local infile功能默认是关闭的,如果没有开启这个功能,会报错: 你可以这样做: 1)show global variables like ‘local_infile’;命令查看功能状态 2)开启本地local_infile功能: set global local_infile=1;

八、使用LOAD DATA INFILE方式导入文本文件

     MySQL中,可以使用LOAD DATA INFILE命令将文本文件导入到MySQL数据库中。基本的语法格式如下:

LOAD DATA [LOW_PRIORITY | CONCURRENT] [LOCAL] INFILE 'filename.txt'[REPLACE | IGNORE] INTO TABLE tablename [OPTION] [IGNORE number LINES] [(col_name,...)]

    LOAD DATA INFILE语句以非常高的速度从一个文本文件中读取记录行并插入到一个表中。

    如果LOCAL关键词被指定,文件将从客户端主机读取;如果LOCAL没有被指定,文件则必须位于服务器上。由于安全性的原因,当读取位于服务器端的文本文件时,文件必须处于数据库目录或可被所有人读取的地方。同时,为了对服务器端的文件使用LOAD DATA INFILE语句,你必须在服务器主机上有FILE权限。只有当你没有以--local-infile=0选项启动mysqld,或你没有禁止你的客户端程序支持LOCAL的情况下,LOCAL才会工作。

    如果你指定关键词LOW_PRIORITY,LOAD DATA语句的执行将会被延迟,直到没有其它的客户端正在读取表。

    如果你对一个MyISAM表指定关键词CONCURRENT,那么当LOAD DATA正在执行时,其它的线程仍可以从表中检索数据。使用这个选项时,如果同时也有其它的线程正在使用表,这当然会有一点影响LOAD DATA的执行性能。

    使用LOCAL将比让服务器直接访问文件要慢一些,因为文件的内容必须从客户端主机传送到服务器主机。而在另一方面,你不再需要有FILE权限用于装载本地文件。

    你也可以使用mysqlimport实用程序装载数据文件;它通过发送一个LOAD DATA INFILE命令到服务器来动作。--local选项使得mysqlimport从客户端主机读取数据文件。如果客户端与服务器支持压缩协议,你可以指定--compress选项,以在较慢的网络中获得更好的性能。

    当从服务器主机定位文件时,服务器使用下列规则:

如果给定一个完整的路径,服务器使用该路径名。如果给定一个有一个或多个前置构件的相对路径,服务器以相对服务器的数据目录搜索文件。如果给定一个没有前置构件的文件名,服务器从当前数据库的数据库目录搜寻文件。

    filename.txt参数指定了要导入数据的文本文件的路径和名称;

    REPLACE和IGNORE关键词控制对与现有的记录在唯一键值上重复的记录的处理。如果你指定REPLACE,新的记录行将替换有相同唯一键值的现有记录行;如果你指定IGNORE,将跳过与现有的记录行在唯一键值上重复的输入记录行;如果你没有指定任何一个选项,当重复键值出现时,将会发生一个错误,文本文件的剩余部分也将被忽略。

    如果你使用LOCAL关键词从一个本地文件中读取数据,在此操作过程中,服务器没有办法停止文件的传送,因此缺省的处理方式就好像是IGNORE被指定一样。

    tablename参数表示即将导入的数据表的名称;OPTION为可选参数选项,OPTION部分的语法包括FIELDS和LINES子句,其可能的取值有:

FIELDS TERMINATED BY '字符串':设置字符串为字段之间的分隔符,可以为单个或多个字符,默认值是制表符“\t”。FIELDS ENCLOSED BY '字符':设置字符来括住字段的值,只能为单个字符。默认情况下不使用任何符号。FIELDS OPTIONALLY ENCLOSED BY '字符':设置字符来括住CHAR、VARCHAR和TEXT等字符型字段,只能为单个字符。默认情况下不使用任何符号。FIELDS ESCAPED BY '字符':设置转义字符,只能为单个字符。默认值为“\”。LINES STARTING BY '字符串':设置每行数据开头的字符,可以为单个或多个字符。默认情况下不使用任何字符。LINES TERMINATED BY '字符串':设置每行数据结尾的字符,可以为单个或多个字符。默认值是“\n”。在Windows操作系统中,则为“\r\n”。IGNORE number LINES:表示忽略文件的前number行记录。(col_name):字段列表。根据字段列表中的字段和顺序来加载记录。SET column=expr:将指定的列column进行相应地转换后再加载,使用expr表达式来进行转换。

例如:

使用LOAD DATA命令将F:\backup\employee.txt文件中的数据导入到example数据库中的employee表。操作步骤如下:

首先要确定已经将employee表中的数据导出到了employee.txt文件中。

然后可以执行下面的步骤。

1. 将employee表中的数据全部删除。

2. 使用LOAD DATA命令从employee.txt文件中还原数据。SQL代码如下:

LOAD DATA INFILE 'F:/backup/employee.txt' INTO TABLE example.employee FIELDS TERMINATED BY '\、' OPTIONALLY ENCLOSED BY '\"' LINES STARTING BY '\>' TERMINATED BY '\r\n';

    首先查看employee.txt文件中的内容,然后使用OPTION选项中的FIELDS和LINES子句过滤掉记录中多余的字符,即可将数据记录准确还原到employee表中。

    如果在employee.txt文件中包含了中文字符,使用上面的语句则会输出乱码。此时,加入CHARACTER SET gbk语句即可解决这一个问题。修改SQL代码如下:

LOAD DATA INFILE 'F:/backup/employee.txt' INTO TABLE example.employee CHARACTER SET gbk FIELDS TERMINATED BY '\、' OPTIONALLY ENCLOSED BY '\"' LINES STARTING BY '\>' TERMINATED BY '\r\n';

3. 查询employee表中的数据记录。可以看到,语句执行成功以后,原来的数据重新恢复到了employee表中。如果第一次还原的记录不准确,则需要清除记录后,修改LOAD DATA命令中的FIELDS或LINES子句,然后再次进行还原,直到准确为止。 另外如果employee表中已经存在记录时:

1. 执行LOAD DATA命令的SQL代码如下:

LOAD DATA INFILE 'F:/backup/employee.txt' REPLACE INTO TABLE example.employee CHARACTER SET gbk FIELDS TERMINATED BY '\、' OPTIONALLY ENCLOSED BY '\"' LINES STARTING BY '\>' TERMINATED BY '\r\n';

可以看出,REPLACE关键词可以控制对与现有的记录在唯一键值上重复的记录的处理。如果指定了REPLACE,新的记录行将替换有相同唯一键值的现有记录行。使用MySQL的LOAD DATA INFILE命令,可以实现不同字符集之间的转换。

九、使用mysql命令还原数据库

    备份的sql文件中包含CREATE、INSERT语句,有时候也会有DROP语句。mysql命令可以直接执行文件中的这些语句,将备份的数据库文件或者数据表文件还原到数据库中。

基本的语法格式如下:

mysql -u user -p [dbname] create database test1; Query OK, 1 row affected (0.11 sec) root@db 17:41: [(none)]> root@db 17:41: [(none)]> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | sys | | test | | test1 | +--------------------+ 6 rows in set (0.00 sec) root@db 17:41: [(none)]> root@db 17:41: [(none)]> root@db 17:41: [(none)]> root@db 17:41: [(none)]> exit Bye [root@source backup]# 2.3导入数据 2.3.1导入方法1

使用mysql导入定义,使用mysqlimport方法导入数据 create database test1; mysql -uroot -poracle test1 USE test1; Database changed root@db 17:43: [test1]> root@db 17:43: [test1]> show tables; +-----------------+ | Tables_in_test1 | +-----------------+ | DEPT | +-----------------+ 1 row in set (0.00 sec) root@db 17:43: [test1]> root@db 17:43: [test1]> select * from DEPT; Empty set (0.00 sec) root@db 17:43: [test1]> root@db 17:44: [test1]> exit Bye [root@source backup]# [root@source backup]# mysqlimport -uroot -poracle --local test1 /data/backup/DEPT.txt test1.DEPT: Records: 4 Deleted: 0 Skipped: 0 Warnings: 0 [root@source backup]# [root@source backup]# mysql -p test1 Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 21 Server version: 5.7.20-log MySQL Community Server (GPL) Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. root@db 17:46: [test1]> root@db 17:46: [test1]> show tables; +-----------------+ | Tables_in_test1 | +-----------------+ | DEPT | +-----------------+ 1 row in set (0.00 sec) root@db 17:46: [test1]> root@db 17:46: [test1]> select * from DEPT; +--------+------------+----------+ | DEPTNO | DNAME | LOC | +--------+------------+----------+ | 10 | ACCOUNTING | NEW YORK | | 20 | RESEARCH | DALLAS | | 30 | SALES | CHICAGO | | 40 | OPERATIONS | BOSTON | +--------+------------+----------+ 4 rows in set (0.00 sec) root@db 17:46: [test1]> 2.3.2导入方法2

在mysql命令行执行脚本创建命令,再使用load data local infile … into …加载数据 mysql -p test1 source /data/backup/DEPT.sql load data local infile ‘/data/backup/DEPT.txt’ into table DEPT;

[root@source backup]# mysql -p test1 Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 22 Server version: 5.7.20-log MySQL Community Server (GPL) Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. root@db 17:47: [test1]> root@db 17:47: [test1]> DROP TABLE DEPT; Query OK, 0 rows affected (0.06 sec) root@db 17:47: [test1]> source /data/backup/DEPT.sql Query OK, 0 rows affected (0.00 sec) Query OK, 0 rows affected (0.00 sec) Query OK, 0 rows affected (0.00 sec) Query OK, 0 rows affected (0.00 sec) Query OK, 0 rows affected (0.00 sec) Query OK, 0 rows affected (0.00 sec) Query OK, 0 rows affected, 1 warning (0.00 sec) Query OK, 0 rows affected (0.00 sec) Query OK, 0 rows affected (0.01 sec) Query OK, 0 rows affected (0.00 sec) Query OK, 0 rows affected (0.00 sec) Query OK, 0 rows affected (0.03 sec) Query OK, 0 rows affected (0.00 sec) Query OK, 0 rows affected (0.00 sec) Query OK, 0 rows affected, 1 warning (0.00 sec) Query OK, 0 rows affected (0.00 sec) Query OK, 0 rows affected (0.00 sec) Query OK, 0 rows affected (0.00 sec) Query OK, 0 rows affected (0.00 sec) root@db 17:47: [test1]> root@db 17:47: [test1]> root@db 17:47: [test1]> show tables; +-----------------+ | Tables_in_test1 | +-----------------+ | DEPT | +-----------------+ 1 row in set (0.00 sec) root@db 17:47: [test1]> root@db 17:47: [test1]> select * from DEPT; Empty set (0.00 sec) root@db 17:47: [test1]> root@db 17:47: [test1]> root@db 17:49: [test1]> load data local infile '/data/backup/DEPT.txt' into table DEPT; Query OK, 4 rows affected (0.01 sec) Records: 4 Deleted: 0 Skipped: 0 Warnings: 0 root@db 17:49: [test1]> root@db 17:49: [test1]> root@db 17:49: [test1]> select * from DEPT; +--------+------------+----------+ | DEPTNO | DNAME | LOC | +--------+------------+----------+ | 10 | ACCOUNTING | NEW YORK | | 20 | RESEARCH | DALLAS | | 30 | SALES | CHICAGO | | 40 | OPERATIONS | BOSTON | +--------+------------+----------+ 4 rows in set (0.00 sec) root@db 17:49: [test1]> 2.4并行与串行演示 2.4.1环境准备 root@db 11:28: [(none)]> use test1 Database changed root@db 11:28: [test1]> root@db 11:28: [test1]> show tables; +-----------------+ | Tables_in_test1 | +-----------------+ | DEPT | +-----------------+ 1 rows in set (0.00 sec) root@db 11:28: [test1]> root@db 11:31: [test1]> create table sbtest1(id int(10) unsigned primary key,k int(10) unsigned,c char(120),pad char(60)); Query OK, 0 rows affected (0.05 sec) root@db 11:32: [test1]> desc sbtest1; +-------+------------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+------------------+------+-----+---------+-------+ | id | int(10) unsigned | NO | PRI | NULL | | | k | int(10) unsigned | YES | | NULL | | | c | char(120) | YES | | NULL | | | pad | char(60) | YES | | NULL | | +-------+------------------+------+-----+---------+-------+ 4 rows in set (0.00 sec) root@db 11:32: [test1]> root@db 11:33: [test1]> create table sbtest2(id int(10) unsigned primary key,k int(10) unsigned,c char(120),pad char(60)); Query OK, 0 rows affected (0.02 sec) root@db 11:33: [test1]> root@db 11:33: [test1]> desc sbtest2; +-------+------------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+------------------+------+-----+---------+-------+ | id | int(10) unsigned | NO | PRI | NULL | | | k | int(10) unsigned | YES | | NULL | | | c | char(120) | YES | | NULL | | | pad | char(60) | YES | | NULL | | +-------+------------------+------+-----+---------+-------+ 4 rows in set (0.00 sec) root@db 11:33: [test1]> root@db 11:33: [test1]> show tables; +-----------------+ | Tables_in_test1 | +-----------------+ | DEPT | | sbtest1 | | sbtest2 | +-----------------+ 3 rows in set (0.00 sec) root@db 11:33: [test1]> root@db 11:33: [test1]> exit Bye [root@source ~]# [root@source ~]# cd /data/ [root@source data]# [root@source data]# ll total 18372 drwxr-xr-x 2 mysql mysql 4096 Mar 21 11:35 backup drwxr-xr-x 7 mysql mysql 4096 Mar 21 11:19 mysql -rw-r--r-- 1 root root 6264322 Mar 21 11:36 sbtest1.txt -rw-r--r-- 1 root root 6264322 Mar 21 11:36 sbtest2.txt [root@source data]# [root@source data]# more sbtest1.txt 1 0 qqqqqqqqqqwwwwwwwwwweeeeeeeeeerrrrrrrrrrtttttttttt 2 0 qqqqqqqqqqwwwwwwwwwweeeeeeeeeerrrrrrrrrrtttttttttt 3 0 qqqqqqqqqqwwwwwwwwwweeeeeeeeeerrrrrrrrrrtttttttttt 4 0 qqqqqqqqqqwwwwwwwwwweeeeeeeeeerrrrrrrrrrtttttttttt 5 0 qqqqqqqqqqwwwwwwwwwweeeeeeeeeerrrrrrrrrrtttttttttt 6 0 qqqqqqqqqqwwwwwwwwwweeeeeeeeeerrrrrrrrrrtttttttttt 7 0 qqqqqqqqqqwwwwwwwwwweeeeeeeeeerrrrrrrrrrtttttttttt 8 0 qqqqqqqqqqwwwwwwwwwweeeeeeeeeerrrrrrrrrrtttttttttt 9 0 qqqqqqqqqqwwwwwwwwwweeeeeeeeeerrrrrrrrrrtttttttttt 10 0 qqqqqqqqqqwwwwwwwwwweeeeeeeeeerrrrrrrrrrtttttttttt 11 0 qqqqqqqqqqwwwwwwwwwweeeeeeeeeerrrrrrrrrrtttttttttt 12 0 qqqqqqqqqqwwwwwwwwwweeeeeeeeeerrrrrrrrrrtttttttttt 13 0 qqqqqqqqqqwwwwwwwwwweeeeeeeeeerrrrrrrrrrtttttttttt 14 0 qqqqqqqqqqwwwwwwwwwweeeeeeeeeerrrrrrrrrrtttttttttt 15 0 qqqqqqqqqqwwwwwwwwwweeeeeeeeeerrrrrrrrrrtttttttttt 16 0 qqqqqqqqqqwwwwwwwwwweeeeeeeeeerrrrrrrrrrtttttttttt 17 0 qqqqqqqqqqwwwwwwwwwweeeeeeeeeerrrrrrrrrrtttttttttt 18 0 qqqqqqqqqqwwwwwwwwwweeeeeeeeeerrrrrrrrrrtttttttttt 19 0 qqqqqqqqqqwwwwwwwwwweeeeeeeeeerrrrrrrrrrtttttttttt 20 0 qqqqqqqqqqwwwwwwwwwweeeeeeeeeerrrrrrrrrrtttttttttt 21 0 qqqqqqqqqqwwwwwwwwwweeeeeeeeeerrrrrrrrrrtttttttttt 22 0 qqqqqqqqqqwwwwwwwwwweeeeeeeeeerrrrrrrrrrtttttttttt 23 0 qqqqqqqqqqwwwwwwwwwweeeeeeeeeerrrrrrrrrrtttttttttt 24 0 qqqqqqqqqqwwwwwwwwwweeeeeeeeeerrrrrrrrrrtttttttttt 25 0 qqqqqqqqqqwwwwwwwwwweeeeeeeeeerrrrrrrrrrtttttttttt 26 0 qqqqqqqqqqwwwwwwwwwweeeeeeeeeerrrrrrrrrrtttttttttt 27 0 qqqqqqqqqqwwwwwwwwwweeeeeeeeeerrrrrrrrrrtttttttttt 28 0 qqqqqqqqqqwwwwwwwwwweeeeeeeeeerrrrrrrrrrtttttttttt 29 0 qqqqqqqqqqwwwwwwwwwweeeeeeeeeerrrrrrrrrrtttttttttt 30 0 qqqqqqqqqqwwwwwwwwwweeeeeeeeeerrrrrrrrrrtttttttttt 31 0 qqqqqqqqqqwwwwwwwwwweeeeeeeeeerrrrrrrrrrtttttttttt 32 0 qqqqqqqqqqwwwwwwwwwweeeeeeeeeerrrrrrrrrrtttttttttt 33 0 qqqqqqqqqqwwwwwwwwwweeeeeeeeeerrrrrrrrrrtttttttttt 34 0 qqqqqqqqqqwwwwwwwwwweeeeeeeeeerrrrrrrrrrtttttttttt 35 0 qqqqqqqqqqwwwwwwwwwweeeeeeeeeerrrrrrrrrrtttttttttt 36 0 qqqqqqqqqqwwwwwwwwwweeeeeeeeeerrrrrrrrrrtttttttttt 37 0 qqqqqqqqqqwwwwwwwwwweeeeeeeeeerrrrrrrrrrtttttttttt 38 0 qqqqqqqqqqwwwwwwwwwweeeeeeeeeerrrrrrrrrrtttttttttt 39 0 qqqqqqqqqqwwwwwwwwwweeeeeeeeeerrrrrrrrrrtttttttttt 40 0 qqqqqqqqqqwwwwwwwwwweeeeeeeeeerrrrrrrrrrtttttttttt 41 0 qqqqqqqqqqwwwwwwwwwweeeeeeeeeerrrrrrrrrrtttttttttt 42 0 qqqqqqqqqqwwwwwwwwwweeeeeeeeeerrrrrrrrrrtttttttttt 43 0 qqqqqqqqqqwwwwwwwwwweeeeeeeeeerrrrrrrrrrtttttttttt 44 0 qqqqqqqqqqwwwwwwwwwweeeeeeeeeerrrrrrrrrrtttttttttt 。。。。。。 [root@source data]# more sbtest2.txt 1 0 qqqqqqqqqqwwwwwwwwwweeeeeeeeeerrrrrrrrrrtttttttttt 2 0 qqqqqqqqqqwwwwwwwwwweeeeeeeeeerrrrrrrrrrtttttttttt 3 0 qqqqqqqqqqwwwwwwwwwweeeeeeeeeerrrrrrrrrrtttttttttt 4 0 qqqqqqqqqqwwwwwwwwwweeeeeeeeeerrrrrrrrrrtttttttttt 5 0 qqqqqqqqqqwwwwwwwwwweeeeeeeeeerrrrrrrrrrtttttttttt 6 0 qqqqqqqqqqwwwwwwwwwweeeeeeeeeerrrrrrrrrrtttttttttt 7 0 qqqqqqqqqqwwwwwwwwwweeeeeeeeeerrrrrrrrrrtttttttttt 8 0 qqqqqqqqqqwwwwwwwwwweeeeeeeeeerrrrrrrrrrtttttttttt 9 0 qqqqqqqqqqwwwwwwwwwweeeeeeeeeerrrrrrrrrrtttttttttt 10 0 qqqqqqqqqqwwwwwwwwwweeeeeeeeeerrrrrrrrrrtttttttttt 11 0 qqqqqqqqqqwwwwwwwwwweeeeeeeeeerrrrrrrrrrtttttttttt 12 0 qqqqqqqqqqwwwwwwwwwweeeeeeeeeerrrrrrrrrrtttttttttt 13 0 qqqqqqqqqqwwwwwwwwwweeeeeeeeeerrrrrrrrrrtttttttttt 14 0 qqqqqqqqqqwwwwwwwwwweeeeeeeeeerrrrrrrrrrtttttttttt 15 0 qqqqqqqqqqwwwwwwwwwweeeeeeeeeerrrrrrrrrrtttttttttt 16 0 qqqqqqqqqqwwwwwwwwwweeeeeeeeeerrrrrrrrrrtttttttttt 17 0 qqqqqqqqqqwwwwwwwwwweeeeeeeeeerrrrrrrrrrtttttttttt 18 0 qqqqqqqqqqwwwwwwwwwweeeeeeeeeerrrrrrrrrrtttttttttt 19 0 qqqqqqqqqqwwwwwwwwwweeeeeeeeeerrrrrrrrrrtttttttttt 20 0 qqqqqqqqqqwwwwwwwwwweeeeeeeeeerrrrrrrrrrtttttttttt 21 0 qqqqqqqqqqwwwwwwwwwweeeeeeeeeerrrrrrrrrrtttttttttt 22 0 qqqqqqqqqqwwwwwwwwwweeeeeeeeeerrrrrrrrrrtttttttttt 23 0 qqqqqqqqqqwwwwwwwwwweeeeeeeeeerrrrrrrrrrtttttttttt 24 0 qqqqqqqqqqwwwwwwwwwweeeeeeeeeerrrrrrrrrrtttttttttt 25 0 qqqqqqqqqqwwwwwwwwwweeeeeeeeeerrrrrrrrrrtttttttttt 26 0 qqqqqqqqqqwwwwwwwwwweeeeeeeeeerrrrrrrrrrtttttttttt 27 0 qqqqqqqqqqwwwwwwwwwweeeeeeeeeerrrrrrrrrrtttttttttt 28 0 qqqqqqqqqqwwwwwwwwwweeeeeeeeeerrrrrrrrrrtttttttttt 29 0 qqqqqqqqqqwwwwwwwwwweeeeeeeeeerrrrrrrrrrtttttttttt 30 0 qqqqqqqqqqwwwwwwwwwweeeeeeeeeerrrrrrrrrrtttttttttt 31 0 qqqqqqqqqqwwwwwwwwwweeeeeeeeeerrrrrrrrrrtttttttttt 32 0 qqqqqqqqqqwwwwwwwwwweeeeeeeeeerrrrrrrrrrtttttttttt 33 0 qqqqqqqqqqwwwwwwwwwweeeeeeeeeerrrrrrrrrrtttttttttt 34 0 qqqqqqqqqqwwwwwwwwwweeeeeeeeeerrrrrrrrrrtttttttttt 35 0 qqqqqqqqqqwwwwwwwwwweeeeeeeeeerrrrrrrrrrtttttttttt 36 0 qqqqqqqqqqwwwwwwwwwweeeeeeeeeerrrrrrrrrrtttttttttt 37 0 qqqqqqqqqqwwwwwwwwwweeeeeeeeeerrrrrrrrrrtttttttttt 38 0 qqqqqqqqqqwwwwwwwwwweeeeeeeeeerrrrrrrrrrtttttttttt 39 0 qqqqqqqqqqwwwwwwwwwweeeeeeeeeerrrrrrrrrrtttttttttt 40 0 qqqqqqqqqqwwwwwwwwwweeeeeeeeeerrrrrrrrrrtttttttttt 41 0 qqqqqqqqqqwwwwwwwwwweeeeeeeeeerrrrrrrrrrtttttttttt 42 0 qqqqqqqqqqwwwwwwwwwweeeeeeeeeerrrrrrrrrrtttttttttt 43 0 qqqqqqqqqqwwwwwwwwwweeeeeeeeeerrrrrrrrrrtttttttttt 44 0 qqqqqqqqqqwwwwwwwwwweeeeeeeeeerrrrrrrrrrtttttttttt 。。。。。。 2.4.2串行导入

下面演示串行导入2张表数据: mysqlimport -uroot -poracle test1 /data/sbtest1.txt /data/sbtest2.txt show full processlist;

窗口1:

[root@source data]# mysqlimport -uroot -poracle test1 /data/sbtest1.txt /data/sbtest2.txt test1.sbtest1: Records: 100011 Deleted: 0 Skipped: 0 Warnings: 0 test1.sbtest2: Records: 100011 Deleted: 0 Skipped: 0 Warnings: 0 [root@source data]#

窗口2: 如果在上述命令的运行过程中,查看MySQL的数据库线程列表,应该可以看到类似如下内容:

root@db 11:38: [(none)]> show full processlist; +----+------+-----------+-------+---------+------+-----------+----------------------------------------------------------------------------+ | Id | User | Host | db | Command | Time | State | Info | +----+------+-----------+-------+---------+------+-----------+----------------------------------------------------------------------------+ | 9 | root | localhost | NULL | Query | 0 | starting | show full processlist | | 10 | root | localhost | test1 | Query | 1 | executing | LOAD DATA INFILE '/data/sbtest1.txt' INTO TABLE `sbtest1` IGNORE 0 LINES | +----+------+-----------+-------+---------+------+-----------+----------------------------------------------------------------------------+ 2 rows in set (0.00 sec) root@db 11:38: [(none)]> root@db 11:38: [(none)]> show full processlist; +----+------+-----------+-------+---------+------+-----------+----------------------------------------------------------------------------+ | Id | User | Host | db | Command | Time | State | Info | +----+------+-----------+-------+---------+------+-----------+----------------------------------------------------------------------------+ | 9 | root | localhost | NULL | Query | 0 | starting | show full processlist | | 10 | root | localhost | test1 | Query | 1 | executing | LOAD DATA INFILE '/data/sbtest2.txt' INTO TABLE `sbtest2` IGNORE 0 LINES | +----+------+-----------+-------+---------+------+-----------+----------------------------------------------------------------------------+ 2 rows in set (0.00 sec) root@db 11:38: [(none)]>

可以看到,mysqlimport每次只有一个线程在导入数据,不加–use-threads=2参数,是串行地导人数据。

2.4.3并发导入

下面通过mysqlimport并发地导入2张表: mysqlimport -uroot -poracle --use-threads=2 test1 /data/sbtest1.txt /data/sbtest2.txt show full processlist;

窗口1:

[root@source data]# mysqlimport -uroot -poracle --use-threads=2 test1 /data/sbtest1.txt /data/sbtest2.txt test1.sbtest1: Records: 100011 Deleted: 0 Skipped: 0 Warnings: 0 test1.sbtest2: Records: 100011 Deleted: 0 Skipped: 0 Warnings: 0

窗口2: 如果在上述命令的运行过程中,查看MySQL的数据库线程列表,应该可以看到类似如下内容:

root@db 11:45: [(none)]> show full processlist; +----+------+-----------+-------+---------+------+-----------+----------------------------------------------------------------------------+ | Id | User | Host | db | Command | Time | State | Info | +----+------+-----------+-------+---------+------+-----------+----------------------------------------------------------------------------+ | 9 | root | localhost | NULL | Query | 0 | starting | show full processlist | | 11 | root | localhost | test1 | Query | 1 | executing | LOAD DATA INFILE '/data/sbtest1.txt' INTO TABLE `sbtest1` IGNORE 0 LINES | | 12 | root | localhost | test1 | Query | 1 | executing | LOAD DATA INFILE '/data/sbtest2.txt' INTO TABLE `sbtest2` IGNORE 0 LINES | +----+------+-----------+-------+---------+------+-----------+----------------------------------------------------------------------------+ 3 rows in set (0.00 sec) root@db 11:45: [(none)]>

可以看到,加–use-threads=2参数后,mysqlimport实际上是同时执行了两句LOAD DTA INFILE并发地导人数据。



【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


图片新闻

实验室药品柜的特性有哪些
实验室药品柜是实验室家具的重要组成部分之一,主要
小学科学实验中有哪些教学
计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
实验室各种仪器原理动图讲
1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
高中化学常见仪器及实验装
1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
微生物操作主要设备和器具
今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
浅谈通风柜使用基本常识
 众所周知,通风柜功能中最主要的就是排气功能。在

专题文章

    CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭