2012-11-02 342 views
5

我有一个简单的更新查询问题总是出现在我的mysql-slow-query.log表中并不大,只包含3021 rows在MySQL中简单的更新查询需要很长时间

查询看起来像:

UPDATE 'address' 
SET 'user' = 1013 
WHERE 'id_adress' = '1' 
    AND 'date' = '2012-06-04' 

Query_time:2.664413 Lock_time:0.000043 Rows_sent:0 Rows_examined:1

当我examinate此查询有:

select 'user' = 1013 
from 'address' 
where 'id_adress' = '1' 
    AND 'date' = '2012-06-04' 

然后看起来非常快1 row in set (0.00 sec)

为什么这个简单的更新查询花费了这么多时间? 如何解决它?

+0

您是否在表上设置了任何索引?索引可能会影响查询的更新性能速度,即使它们加速了“SELECT”查询。 – Ren

+0

@Ren在这张表上没有索引,ID上只有1个主键。 – stefek143

+0

由于这些查询没有什么意义,因为有单引号的所有内容,我假设您实际上是使用某种客户端语言生成它们的,并且这是SQL代码*它认为它实际上正在运行。我的建议是仔细检查:1)生成的SQL代码是什么2)SQL在外面跑步时的表现(例如,来自您最喜欢的MySQL客户端)。 –

回答

1

首先检查您的表是否没有崩溃,
如果它然后修复您的表。

第二次尝试索引where子句中使用的那两个字段