如何提高MySQL查询的速度

时间:2014-11-07 18:46:44

标签: mysql performance

我有一个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,运行执行大约需要半个小时。 如何减少执行时间?提前谢谢。

1 个答案:

答案 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