Как правильно оптимизировать Mysql запрос?
Медлено у Вас все потому что вы перечисляете 2 таблицы подряд, получая полное произведение матриц в размере 1kk * 400k = 400kkk записей.
Все равно что "from a, b" написать.
Правильный запросUPDATE TABLE sp_germany AS a 
JOIN TABLE sp_germany_small  AS b ON b.product_artikul = a.product_artikul
SET a.product_price = b.product_price
Ну и индексы по полю product_artikul  должны быть в обеих таблицах.
попробуйте завернуть это все в транзакцию - по крайней мере коммит будет 1, а не 400К.START TRANSACTION;
SET AUTOCOMMIT=0;
UPDATE sp_germany as a, sp_germany_small as b
SET a.product_price = b.product_price
WHERE b.product_artikul = a.product_artikul;
COMMIT;
SET AUTOCOMMIT=1;