0

我正在研究一种方法来记录我网站上每个用户的点击时间。

当我试图想办法解决这个问题时,我目前有 600,000 多条记录。

CREATE TABLE IF NOT EXISTS `clicktime` (
  `id` int(5) NOT NULL AUTO_INCREMENT,
  `page` int(11) DEFAULT NULL,
  `user` varchar(20) DEFAULT NULL,
  `time` bigint(20) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=686277 ;

我将不得不每页进行十次这样的搜索。我的博客一次显示十页的片段。

SELECT time 
FROM clicktime 
WHERE `page` = '112'
  AND `user` = 'admin' 
ORDER BY `id` ASC LIMIT 1

看起来像是在吸引我的电话是WHERE page = '112'

我怎样才能使这项工作更快,每次通话最多需要 3 秒?

4

1 回答 1

2

尽管这里有很多事情可能会更好(例如,当时是一个 bigint),但短期内对您有帮助的只是在您的user字段上添加一个索引。

于 2012-04-28T19:59:49.683 回答