我正在尝试从文本文件(18.9GB大)插入数据,如下所示:
as8dyta89sd6892yhgeui2eg
asoidyaos8yd98t2y492g4n2
as8agfuigf98safg82b1hfdy
它们都是32个字符的长度。目前我有一个名为hashmasher的数据库和一个名为combination的组合表,名为unhashed和sha256。目前,我将数据存储在未散列的列中。看起来像:
没有受伤| SHA256
数据| (完全空着)
现在我想知道,如何将数据插入到现有列中以及仅将数据添加到第二列,例如上面的内容将成为
没有受伤| SHA256
数据| firstlineoftextfile
数据| secondlineoftextfile
如果我使用LOAD DATA INFILE,它会将它加载到NEW行(这就是我所知道的),并将它加载到未散列的列以及sha256列。
TL; DR我想将文本文件中的数据插入到第二列预先存在的行中。
答案 0 :(得分:0)
使用LOAD DATA INFILE将数据插入新表中。这可能是暂时的,加快一点。使用INSERT ... SELECT ... JOIN合并两个表。
据我所知,19G表可能需要几个小时。
事情变得更复杂,因为您的原始文件每行包含一个值。您可能希望使用sed / awk脚本修复它,以便每行有两个值,以便LOAD DATA INFILE可以工作。
另一种方法是继续使用sed / awk脚本,并将原始文件转换为带有一堆UPDATE语句的文件,然后将结果传递给MySQL。