我有下面的查询,它生成了我需要的结果,但是对于大型数据库/表的性能来说,这太糟糕了。有人能告诉我为什么写得这么慢,并告诉我另一种写得这么快的方法吗?我花了一个多小时才完成!足够的内存..专用服务器上没有太多其他的东西。
UPDATE feed.product fp
LEFT JOIN ( SELECT p.date_upd, p.id_product, GROUP_CONCAT(DISTINCT(CONCAT ('https://www.example.com/', pi.`id_image`,'-x_shop/',pl.link_rewrite,'.jpg')) SEPARATOR ",") AS images
FROM db.products p
LEFT JOIN db.image pi ON (p.id_product = pi.id_product)
LEFT JOIN db.product_lang pl ON (p.id_product = pl.id_product)
GROUP BY p.id_product
) s ON fp.id_product = s.id_product
SET fp.images = s.images
WHERE fp.image_updated = 1;