UPDATE语句处于“查询结束状态”

时间:2013-03-01 00:15:47

标签: mysql

我们最近升级了在mysql服务器版本5.5.8上运行的mysql数据库。升级后有时我们会看到简单的升级版本需要10秒以上。当我查看进程列表时,它显示所有这些都处于“查询结束”状态。有没有人对此有任何想法。

 UPDATE Accounts SET IPadd = 'xx.xx.xx.xx', updatedtime = NULL WHERE Id=xx;

3 个答案:

答案 0 :(得分:0)

尝试将引号添加到您在查询中使用的任何值,因为它们都是字符串。这帮我很多次了。例如:

UPDATE Accounts SET IPadd = 'xx.xx.xx.xx' WHERE Id='xx';

答案 1 :(得分:0)

我在这里检查了一些解决方案,然后我找到了link

添加此行(如果存在则编辑它):

innodb_flush_log_at_trx_commit = 0

在/etc/my.cnf


然而

关于Pedro Werneck评论:

  

天真地设置innodb_flush_log_at_trx_commit可能很危险

如果您正在对其进行交易查询,那么这是您的选择。

答案 2 :(得分:0)

建议:

1)检查日志文件的大小

LINK:Lots of "Query End" states in MySQL, all connections used in a matter of minutes

2)确保“id”具有索引

3)查看各种MySql调优和配置选项。例如:innodb_flush_log_at_trx_commit = 0

LINK:"query end" step very long at random times

警告:在禁用日志刷新之前请仔细考虑。在这里查看更多详细信息:

LINK:https://dba.stackexchange.com/questions/12611/is-it-safe-to-use-innodb-flush-log-at-trx-commit-2