2010-10-24 33 views
1

一)我有百万域名nosql示例,哪个引擎?

B)每个域都有10多万网站

C),每个站点都有约10000访问每日/(5000次独特的日访问量)

d)作为所有者所有这些网站的,我想看看我,有多少游客在选定地点曾在选定的时间段,例如:2010年4月

有多少独特的访问者是从1987年12月4日至23日MYDOMAIN。 com/tutorials

从yourdomain.com/reference到1996年8月30日至2009年7月16日,有多少独立访问者?

对于传统的SQL数据库来说,这是一个痛苦。

什么是最聪明的方法?使用什么存储引擎?

我只有SQL知识。任何额外的资源非常感谢。

+0

你认为什么是“传统SQL”,为什么你认为它“是一种痛苦”?你有做基准吗? – 2010-10-24 12:31:11

+0

传统=> SQL,没有基准,这是理论。由于使用CPU和内存造成的痛苦,当然也有时间从数据库中获取数据。 – astropanic 2010-10-24 12:33:03

回答

1

由于数字和潜在的查询类似于你列出的那些,我非常想做一个简单的SQL(PSQL/TSQL)数据库来满足你的需求。相反,您需要某种形式的OLAP处理,如SSAS(SQL Server Analysis Services)或Oracle提供的类似产品。

+0

谢谢曼,将试一试http://en.wikipedia.org/wiki/Comparison_of_OLAP_Servers – astropanic 2010-10-24 12:45:49

0

我认为DB是这个选项 最好的方法,你只需要cr4eate几个表和它们之间传播的数据,例如:

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和结束日期应通过编程语言(PHP,ASP)传递也可以手动在SELECT

希望有所帮助设定。

+0

这是SQL相关的,它是资源密集(CPU,内存)和slooooow,谢谢无论如何 – astropanic 2010-10-24 12:27:59