我正在研究一种方法来记录我网站上每个用户的点击时间。
我目前有 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 秒?
尽管这里有很多事情可以更好(例如,暂时是一个bigint),但短期内对您有所帮助的只是在您的user
字段上添加索引。