极慢的UPDATE查询

时间:2010-10-28 23:43:17

标签: 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)

现在更新查询:

UPDATE tmp_pages_data SET page_status = 1 WHERE id = 19080

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

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

2 个答案:

答案 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 )

感谢大家的建议:)