我有一个MySGL查询:
UPDATE Feeds
SET Quantity = (SELECT Inventory.Quantity
FROM Inventory
WHERE Feeds.SKU = Inventory.SKU)
WHERE EXISTS (SELECT Inventory.Quantity
FROM Inventory
WHERE Feeds.SKU = Inventory.SKU);
它运作良好,但速度很慢。数据库是MySQL inodb,行数约为50,000,运行执行大约需要半个小时。 如何减少执行时间?提前谢谢。
答案 0 :(得分:4)
MySQL可以updates with join logic。假设您的SKU列至少被索引(唯一?),这应该表现得非常好:
UPDATE Feeds AS f
JOIN Inventory AS i
ON i.SKU = f.SKU
SET f.Quantity = i.Quantity