MySQL从文件夹导入多个CSV和SQL

时间:2019-12-10 21:53:29

标签: mysql mysqlimport

首先,我的初衷只是想重命名/复制数据库。但是知识的力量正在进一步扩展。

我知道ConnectionProvider。我也知道mysqldump db | mysql db导入单个CSV。

MySQL有一种很好的方式将数据库以CSV格式转储到单个文件夹中

LOAD LOCAL DATA INFILE

现在该文件夹将同时包含每个表(mysqldump -T/some/folder db)的SQL和TXT文件

之所以选择这种方法,是因为我有一个4Gb大小的数据库,而使用传统的导入速度却很慢。我听说使用CSV导入可能会带来更好的性能。

问题:

  1. 是否有任何官方方法进行反向操作,即从同时包含SQL和TXT文件的文件夹中进行读取?

  2. 像这样的导出然后导入可以确保原始数据库的精确副本吗? (索引,主变量,唯一性,视图等)

编辑:

所以我做了一些研究。

相当神话,但table1.sql, table1.txt, ...mysqldump然后由于许多优化,导入SQL似乎比CSV更快!使用的命令是--opt而不是mysqlimport(我会稍后尝试查看是否有任何区别)

1 个答案:

答案 0 :(得分:0)

这有点晚了,但是你可以用 bash 做一个小技巧。

cd 到文件所在的文件夹:

for x in $(ls *.txt); do mysqlimport -u YOURUSER -pYOURPASS --local database_to_import_into  $x;done

这会奏效。