我注意到我的脚本变得很慢,然后我缩小了问题:这是一个更新查询。奇怪的是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)
现在更新查询:
UPDATE tmp_pages_data SET page_status = 1 WHERE id = 19080
1 row(s) affected. ( Query took 24.5968 sec )
正如您所看到的,选择速度非常快,但更新速度非常慢。这怎么可能?
答案 0 :(得分:1)
是的,这很奇怪。我唯一能想到的是tmp_pages_data
表被其他事务锁定,或id = 19080
行被其他事务锁定。
另一个(不太可能的事情)是你在page_status
上有一个索引需要在UPDATE
句子上更新,那部分需要花费很多时间来执行。
答案 1 :(得分:-2)
好的,完成了!
我不得不重新启动Apache,现在它工作得很好(实际上我重新启动了Ubuntu)!
UPDATE tmp_pages_data SET page_status =1 WHERE id =19080
1 row(s) affected. ( Query took 0.0004 sec )
感谢大家的建议:)