哪种存储大数据的方式对于快速搜索和报告使用会更有效?
{ website: "google.com",
description: "google is a search engine",
vistits: [
{date: 1334565455, referrer: "http://bing.com"},
{date: 1334565455, referrer: "http://bing.com"},
{date: 1334565455, referrer: "http://bing.com"},
{date: 1134565455, referrer: "http://bing.com"},
{date: 1334542455, referrer: "http://bing.com"},
{date: 1334555455, referrer: "http://bing.com"},
{date: 1334575455, referrer: "http://bing.com"},
{date: 1324565455, referrer: "http://bing.com"},
{date: 1334565455, referrer: "http://bing.com"},
]}
或使用传统方式将访问权限存储在具有网站ID作为参考的单独表格中?
答案 0 :(得分:2)
这取决于。如果您从某些网站访问很多,那么这些文档的增长速度会非常快。最终,它们太大而无法加载。
另一方面,如果您的报告工具始终需要加载所有访问,则将它们拆分为多个文档会降低性能。
尝试平衡两个目标。例如,如果数组visits
变得太大,则创建另一个文档并将其文档ID保存为continuedIn
。这样,您可以限制每个文档的大小,但仍然可以将大量信息保存在一起。
如果您的报告工具无论如何聚合,您还可以尝试按天分组访问(即一个文档包含某一天的所有访问)。这样,文件可以增长,但它们不会永远增长 - 只有一天。
最后,你可以在N次访问后停止录制(比如100'000)。知道您是否有100001次或100015次访问有什么意义?
注意:根据您所在的位置,只有获得每位访客的书面许可,才能在较长时间内记录IP地址和推荐人信息。即使在您所在的国家/地区合法,某些访问者也会对跟踪它们的网站敏感。当然,他们对此无能为力。除了停止访问您,配置他们的Web浏览器以停止与您的服务器通话或在博客和论坛中发布负面评论。