将文本文件中的数据插入到预先存在的列中
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.
我正在尝试从如下所示的文本文件(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.