简单的更新查询很慢

时间:2013-06-08 18:52:17

标签: mysql database-performance

我有一个MySQL UPDATE查询,我无法弄清楚,为什么这么慢。 查询为UPDATE profile SET lastfresh=? WHERE uid=?

表格:

CREATE TABLE `profile` (
  `uid` mediumint(6) NOT NULL AUTO_INCREMENT,
  `nick` varchar(16) NOT NULL DEFAULT '',
  `lastfresh` int(10) unsigned NOT NULL DEFAULT '0',
  ....
  PRIMARY KEY (`uid`),
  KEY `adtk_nck` (`nick`),
  KEY `adtk_wnl` (`nick`,`lastfresh`),
  KEY `adtk_np` (`nick`,`pass`),
  KEY `lng` (`lng`)
) ENGINE=InnoDB AUTO_INCREMENT=182993 DEFAULT CHARSET=utf8;

查询执行的持续时间为17秒(有时)。有什么问题?

1 个答案:

答案 0 :(得分:1)

微调你的mysql设置。

对于innodb引擎的性能非常重要的一件事是innodb_buffer_pool_size设置。它的默认值是8 mb,非常小。请遵循本文中的建议:http://www.mysqlperformanceblog.com/2007/11/01/innodb-performance-optimization-basics/

如果你想了解缓冲池的工作原理,这是mysql文档的链接:http://dev.mysql.com/doc/refman/5.5/en/innodb-buffer-pool.html