У меня есть таблица, она содержит данные из двух миллионов строк. Для каждой строки он имеет столбец body
, он хранит данные формата JSON. Например:mysql миллионы строк импорта данных из одной таблицы в другую таблицы
TABLE_A:
id user_id body
1 1 {'tel': '13678031283', 'email': '[email protected]', 'name': 'test'....}
2 2 {'tel' : '1567827126', 'age': '16'....}
......
У меня есть еще один стол, названный TABLE_B:
TABLE_B:
id user_id tel email name
1 1 13678019 [email protected] test1
2 2 15627378 [email protected] test2
.....
TABLE_A имеет 2 миллиона строк данных, я хочу для импорта всех табличных данных в таблицу_b, каждая строка таблицы_a должна быть процессом.
Я хочу иметь дело с ним, как это:
for row in table_a_rows:
result = process(row)
insert result to table_b
.....
Но я думаю, что это не очень хорошая идея. это лучший способ сделать это?
Существует расширение для MySQL/MariaDB, что позволяет рассматривать такие раздражающие json-структуры как «виртуальные столбцы». Таким образом, вы можете использовать простой оператор sql update для своей задачи без необходимости реализации хранимой процедуры. – arkascha
Я не хочу, чтобы каждый ключ тела был одним столбцом, я просто хочу получить необходимую информацию. – pangpang
Извините, я не понимаю, что вы пытаетесь сказать в своем последнем комментарии. Вам нужен доступ к контенту структуры JSON, как если бы значения хранились в отдельных столбцах. Это то, что позволяет расширение. Таким образом, вы можете разделить содержимое этих строк JSON, чтобы разделить значения, которые вы снова можете использовать в инструкции обновления. Это то, о чем вы просите, если я полностью не пойму, понял ваш вопрос. – arkascha