0

我有一个 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 秒(有时)。有什么问题?

4

1 回答 1

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

于 2013-06-08T20:31:29.043 回答