PHP   发布时间:2022-04-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了php – 在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 ;

这是非常基本的,存储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_count` smallint(5) NOT NULL,PRIMARY KEY  (`archive_id`),KEY `view_url` (`view_url`),KEY `view_date` (`view_date`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

这会忽略用户信息(和引荐网址)并存储每天查看网址的次数.这可能是我们通常想要使用数据的方式(每天查看一次页面的次数)所以应该快速查询,但即使我用它来主要替换’views’表(右)现在我想我可以按小时显示上周/月左右的页面浏览量,然后显示超出该数据的每日视图,因此只需要’views’表来包含上周/月的数据)但它仍然很大表.

无论如何,长话短说,我想知道你是否可以给我任何关于如何最好地处理MySQL站点中的统计/页面视图存储的提示,目标是保持表中的表的大小db尽可能小,并且仍然能够轻松(并且至少相对快速地)查询信息.我看了一下分区表,但该站点没有安装MySQL 5.1.您可以提供的任何其他提示或想法将非常感激.

解决方法

您可能希望只为页面创建一个表,并让用户视图具有对该表的引用.另一种可能的优化是将用户IP存储在不同的表中,可能是某些会话表信息.这应该会减少您的查询时间.你在归档表的正确轨道上;相同的优化也应该有所帮助.

大佬总结

以上是大佬教程为你收集整理的php – 在MySQL中存储视图/统计信息的最佳方式全部内容,希望文章能够帮你解决php – 在MySQL中存储视图/统计信息的最佳方式所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: