У меня есть данные с 500M + записями, в файле с 2 полями, blob
и c_id
.
Есть также два других файла с такими же данными в других форматах: Файл с90M уникальных капель.Файл с большим двоичным объектом и разделенный запятыми список c_ids для каждой записи.
У меня есть две таблицы:
table_a: [id, blob] # id is auto-increment
table_b: [a_id, c_id]
Для каждого уникального большого двоичного объекта запись в table_a должна бытьсоздано.Для каждой записи в файле должна быть создана запись в table_b с соответствующим внешним ключом для table_a.
Решение, которое я сейчас использую, состоит в том, чтобы генерировать операторы вставки, используя last_insert_id
, но это слишком медленно.Я бы предпочел использовать LOAD DATA INFILE, но идентификатор автоинкремента усложняет задачу.
например
# 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