a)我有1000000个域名
b)每个域都有大约100000个站点
c)每个网站每天有大约10000次访问/(每天5000次独立访问)d)作为所有这些网站的所有者,我想看看,在选定的时间段内我选择的网站上有多少访问者,例如:
1987年12月4日至2010年4月23日期间,有多少独立访问者访问mydomain.com/tutorials
在yourdomain.com/reference上,1996年8月30日至2009年7月16日有多少独立访客?
对于传统的SQL数据库来说,这很痛苦。
最聪明的方法是什么?使用什么存储引擎?
我只有SQL知识。非常感谢任何其他资源。
答案 0 :(得分:1)
使用与您列出的数字和潜在查询类似的数字和潜在查询,我会非常注意一个简单的SQL(PSQL / TSQL)数据库将满足您的需求。相反,您需要某种形式的OLAP处理,如SSAS(SQL Server Analysis Services)或Oracle提供的类似产品。
答案 1 :(得分:0)
我认为DB是此选项的最佳方法 你只需要创建几个表并在它们之间传播数据,例如:
Table: Domains [id, name]
Table: Sites [id, domain_id, name]
Table: Visits [id, site_id, date]
所以你可以选择让我们说:
SELECT COUNT(v.id)
FROM Visits AS v
RIGHT JOIN Sites AS s
ON v.site_id = s.id
RIGHT JOIN Domains AS d
ON s.domain_id = d.id
WHERE d.name = 'mydomain.com'
AND s.name = 'tutorials'
AND v.date BETWEEN startDate AND endDate
startDate和endDate应该通过编程语言(PHP,ASP)传递,或者它们可以在SELECT中手动设置
希望有所帮助。