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