我有 500M+ 记录的数据,在一个有 2 个字段的文件中,blob
并且c_id
.
还有两个其他文件具有其他格式的相同数据: 一个具有 90M 唯一 blob 的文件。带有 blob 的文件,以及每条记录的 c_id 的逗号分隔列表。
我有两张桌子:
table_a: [id, blob] # id is auto-increment
table_b: [a_id, c_id]
对于每个唯一的 blob,必须在 table_a 中创建一条记录。对于文件中的每条记录,必须使用 table_a 的适当外键创建 table_b 中的记录。
我现在使用的解决方案是生成插入语句,使用last_insert_id
,但是太慢了。我更喜欢使用 LOAD DATA INFILE,但自动增量 ID 使事情变得复杂。
例如
# Raw data
c_id blob
1 aaaa
2 aaaa
3 aaaa
3 aaab
4 aaac
期望的输出:
# Table_a
id blob
1 aaaa
2 aaab
3 aaac
# Table_b
c_id a_id
1 1
2 1
3 2
3 2
4 3