极慢的UPDATE查询

oka*_*bmd 11 mysql performance sql-update

我注意到我的脚本变得很慢,然后我缩小了问题:这是一个更新查询.奇怪的是SELECT查询非常快.该表有大约600,000个条目.是的,id是UNIQUE PRIMARY KEY.这里有些例子:

SELECT * FROM `tmp_pages_data` WHERE id = 19080 LIMIT 0 , 30

Showing rows 0 - 0 (1 total, Query took 0.0004 sec)
Run Code Online (Sandbox Code Playgroud)

现在更新查询:

UPDATE tmp_pages_data SET page_status = 1 WHERE id = 19080

1 row(s) affected. ( Query took 24.5968 sec )
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,选择非常快,但更新速度很慢.这怎么可能?

Pab*_*ruz 1

是的,这很奇怪。我唯一能想到的是tmp_pages_data表被其他事务锁定,或者行id = 19080被其他事务锁定。

另一个(不太可能的事情)是您有一个page_status需要在UPDATE句子上更新的索引,并且该部分需要花费大量时间来执行。