将文本文件中的数据插入到预先存在的列中

Inserting data from text files into pre-existing columns

我正在尝试从如下所示的文本文件(18.9GB 大)中插入数据:

as8dyta89sd6892yhgeui2eg

asoidyaos8yd98t2y492g4n2

as8agfuigf98safg82b1hfdy

都是32个字符的长度。目前我有一个名为 hashmasher 的数据库和一个名为 combinations 的 table,其中的列名为 unhashed 和 sha256。目前我将数据存储在未散列的列中。看起来像:

unhashed | sha256

data | (completely empty)

现在我想知道,如何将数据插入现有列以及仅将数据添加到第二列,例如上面的内容将变为

unhashed | sha256

data | firstlineoftextfile

data | secondlineoftextfile

如果我使用 LOAD DATA INFILE,它将把它加载到新行(这就是我被告知的内容)并将它加载到未散列的列以及 sha256 列。

TL;DR 我想将文本文件中的数据插入到预先存在的行的第二列中。

使用 LOAD DATA INFILE 将数据插入新的 table。这可能是暂时的,可以加快速度。使用 INSERT ... SELECT ... JOIN 合并两个 table。

我知道使用 19G 可能需要几个小时 table。

事情更复杂,因为您的原始文件每行包含一个值。您可能想用 sed/awk 脚本修复它,以便每行有两个值,这样 LOAD DATA INFILE 就可以工作了。

另一种方法是继续使用 sed/awk 脚本,将您的原始文件转换为带有一堆 UPDATE 语句的文件,然后将结果通过管道传输到 MySQL.