我有一个问题,我已经编写了一个解决方案,但它非常缓慢。所以我需要对其进行巨大的改进,或者以另一种方式提示。mysql批量导入文件到longtext
的情况如下:
有上包含许多子文件夹本地磁盘目录,并在总10多万文件大约需要25 GB,所以一个文件中有大约250 KB。所有文件都是文本文件,我不知道主目录的路径树的结构。路径树,文件名及其内容可以定期更改。
我想要实现的是将所有这些文件导入到一个mysql表中,该表至少应该保存文件的路径和内容。
例如:
+++++++++++++++++++++++++++++++++++
+ NAME + TYP +
+++++++++++++++++++++++++++++++++++
+ path + varchar(500) +
+ content + longtext +
+++++++++++++++++++++++++++++++++++
我的第一种方法是一个java-PROGRAMM,搜索主目录递归的所有文件。读取每个文件并将内容存储在字符串中。之后,我为每个文件调用INSERT。
我启动了程序,但在第一个小时内它只处理了3600个文件,所以只有3.6%。总进口27小时是有点多。 ;-)
有没有人有一个想法,我可以改善呢?
我不认为我可以在这种情况下以任何方式使用LOAD DATA INFILE。也许还有另一个可以帮助你的mysql函数?
Java解决方案是首选,但C/C++也是可能的。也许有人可以猜测这可以加速这个过程?
也可以更改mysql服务器的设置。但我没有进入这个话题。
系统是linux上的mysql服务器,文件也存储在同一台服务器上。一般来说,解决方案应该与OS无关。
非常感谢所有的建议!