我注意到我的一个脚本变得很慢,然后我缩小了问题的范围:这是一个更新查询。奇怪的是 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/