代码之家  ›  专栏  ›  技术社区  ›  astropanic

nosql示例,哪个引擎?

  •  1
  • astropanic  · 技术社区  · 14 年前

    a) 我有1000000个域名

    b) 每个域有大约100000个站点

    d) 作为所有这些网站的所有者,我想知道,在选定的时间段内,我在选定的网站上有多少访问者,例如:

    从1987年12月4日到2010年4月23日,在mydomain.com/tutorials上有多少独特的访客

    1996年8月30日至2009年7月16日期间,yourdomain.com/reference上有多少独立访客?

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

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

    2 回复  |  直到 14 年前
        1
  •  1
  •   Kane    14 年前

    有了与您所列出的数字和潜在查询相似的数字和潜在查询,我非常想知道一个简单的SQL(PSQL/TSQL)数据库能够满足您的需求。相反,您将需要某种形式的OLAP处理,如SSAS(SQL Server Analysis Services)或来自Oracle的类似产品。

        2
  •  0
  •   Alex Rashkov    14 年前

    我认为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中手动设置

    希望能有所帮助。