我注意到我的一个脚本变得非常慢,然后我缩小了问题的范围:这是一个更新查询。奇怪的是 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 )
可以看到,select 很快,但是update 很慢。这怎么可能?
最佳答案
是的,这很奇怪。我唯一能想到的是 tmp_pages_data
表被其他事务锁定,或者 id = 19080
的行被其他事务锁定。
另一个(不太可能的事情)是你在 page_status
上有一个索引需要在 UPDATE
语句上更新,那部分要花很多时间执行。
关于mysql - 极慢的 UPDATE 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4048005/