Pergunta

a) eu tenho 1000000 nomes de domínio

b) Cada domínio tem cerca de 100000 sites

c) cada site tem cerca de 10000 visitas diárias / (5000 visitas únicas diárias)

d) Como o proprietário de todos os sites, eu quero ver, como muitos visitantes em determinados sites que eu tinha em períodos de tempo selecionado, por exemplo:

Quantas visitante único, foram, a partir de 4 de dezembro de 1987, de 23 de abril de 2010 mydomain.com/tutorials

Quantas visitante único, foram, a partir de 30 de agosto de 1996 a 16 de julho de 2009, no yourdomain.com/reference ?

Para um tradicional banco de dados SQL esta é uma dor.

O que é a abordagem mais inteligente ?O que o mecanismo de armazenamento para usar ?

Eu só tenho conhecimento SQL.Quaisquer recursos adicionais muito apreciada.

Foi útil?

Solução

Com os números e consultas em potencial semelhantes às que você listou, eu faria muito que um simples banco de dados SQL (PSQL/TSQL) atenda às suas necessidades. Em vez disso, você precisará de algum tipo de processamento OLAP, como SSAs (SQL Server Analysis Services) ou uma oferta semelhante da Oracle.

Outras dicas

Eu acho que DB é a melhor abordagem para esta opção Você apenas tem que cr4eate um par de tabelas e espalhar os dados entre eles, por exemplo:

Table: Domains [id, name]
Table: Sites [id, domain_id, name]
Table: Visits [id, site_id, date]

assim você pode escolher deixar de dizer:

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 e endDate devem ser passadas através de linguagem de programação(PHP, ASP) ou podem ser definidas manualmente, SELECIONE

Espero que ajude.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top