小编Cha*_*lie的帖子

在MySQL中存储视图/统计信息的最佳方法

我没有在"视图"表中存储将单个页面视图存储的站点:

CREATE TABLE `views` (
  `view_id` bigint(16) NOT NULL auto_increment,
  `user_id` int(10) NOT NULL,
  `user_ip` varchar(15) NOT NULL,
  `view_url` varchar(255) NOT NULL,
  `view_referrer` varchar(255) NOT NULL,
  `view_date` date NOT NULL,
  `view_created` int(10) NOT NULL,
  PRIMARY KEY  (`view_id`),
  KEY `view_url` (`view_url`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
Run Code Online (Sandbox Code Playgroud)

这是非常基本的,存储user_id(用户在网站上的id),他们的IP地址,url(没有域减少表的大小),引用url(现在没有真正使用它,可能会摆脱它它的日期(当然是YYYY-MM-DD格式),以及视图发生时的unix时间戳.

当然,这个表变得相当大(目前有400万行,而且它是一个相当年轻的站点),并且运行查询的速度很慢.

对于一些基本的优化,我现在创建了一个'views_archive'表:

CREATE TABLE `views_archive` (
  `archive_id` bigint(16) NOT NULL auto_increment,
  `view_url` varchar(255) NOT NULL,
  `view_count` smallint(5) NOT NULL,
  `view_date` date NOT NULL,
  PRIMARY KEY  (`archive_id`),
  KEY `view_url` (`view_url`),
  KEY `view_date` (`view_date`)
) …
Run Code Online (Sandbox Code Playgroud)

php mysql statistics views archive

8
推荐指数
1
解决办法
3409
查看次数

标签 统计

archive ×1

mysql ×1

php ×1

statistics ×1

views ×1