如何优化此查询?

Dam*_*ano 3 mysql sql

价格 id id_stock价格日期

**stocks**
id
stock_name
active
Run Code Online (Sandbox Code Playgroud)

现在我必须stocks.active=0为每个拥有MAX(prices.date) > 15 days(我必须通过的日期)的股票设置

这是我的查询,但它非常慢!

update stocks set stocks.active=0 where stocks.id IN (

SELECT prices.id_stock 
FROM prices
GROUP BY prices.id_stock
HAVING datediff('2010-08-17', MAX( prices.date )) > 15

)
Run Code Online (Sandbox Code Playgroud)

如何优化呢?

非常感谢你!

Qua*_*noi 7

UPDATE  stocks
SET     active = 0
WHERE   DATEDIFF('2010-08-17',
        (
        SELECT  MAX(prices.date)
        FROM    prices
        WHERE   id_stock = stocks.id
        )) > 15
Run Code Online (Sandbox Code Playgroud)

创建索引 prices (id_stock, date)