У меня есть таблица (table1) с 7 миллионами строк, и мне нужно скопировать одно значение из этой таблицы в столбец из другой таблицы (table2). Я попытался сделать это на примере таблицы только с 50 строками, и это было очень дорого (22 секунды). Я что-то пропустил? Это относительно простая операция, и я не могу запустить ее часами / днями.
postgres=# explain analyze update table2 set myvalue=(SELECT myvalue from table1 t1 where table2.id=t1.id);
ПЛАН ЗАПРОСА
Update on table2 (cost=0.00..14291311.70 rows=130 width=586) (actual time=22074.702..22074.702 rows=0 loops=1)
-> Seq Scan on table2 (cost=0.00..14291311.70 rows=130 width=586) (actual time=407.754..22073.606 rows=50 loops=1)
SubPlan 1
-> Seq Scan on table1 t1 (cost=0.00..109933.08 rows=4836 width=32) (actual time=264.664..441.460 rows=1 loops=50)
Filter: (table2.id = (id)::text)
Rows Removed by Filter: 737957
Planning time: 0.110 ms
Execution time: 22074.747 ms