我有一张mysql表 views
用于跟踪网页上的视图。表格的结构如下:
CREATE TABLE views (
id int(11) not null auto_increment,
page int(11) not null,
pglast DATETIME not null,
pgviews int(11) default 0,
primary key(id),
unique key page (page)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
这个 page
列是所查看页面的id pglast
列用于保存上次访问页面的时间。 pglast
通常看起来像: 2018-12-03 14:57:57
这个 pgviews
列用于保存访问次数,此列通常如下所示: 7
我不是每次访问页面时都添加行,而是简单地添加行 UPDATE
记录:我更新 pglast
列和增量 pgviews
列。
我想要的是:
显示今天、本月和全年的浏览量。
是可以做我想做的,还是我必须为访问添加带有访问日期的行?当然,在页面访问中添加行的缺点是,如果访问量很大,它可能会非常满,而简单地更新记录更具可伸缩性。。。
1条答案
按热度按时间kupeojn61#
要完成您想要的,而不必为每次访问添加一行,您可以执行以下操作:
每次访问都会增加日、月和年的浏览量。运行一个cronjob,分别每天、每月和每年重置pgviews\u day、pgviews\u month和pgviews\u year。