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

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

Showing rows 0 - 0 (1 total, Query took 0.0004 sec)

现在更新查询:
UPDATE tmp_pages_data SET page_status = 1 WHERE id = 19080

1 row(s) affected. ( Query took 24.5968 sec )

如您所见,选择非常快,但更新非常慢。这怎么可能?

最佳答案

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

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

关于mysql - 极慢的 UPDATE 查询,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4048005/

10-16 17:52
查看更多