Arquitetura de banco de dados para milhões de novas linhas por dia

Preciso implementar um serviço de análise da web desenvolvido sob medida para um grande número de sites. As principais entidades aqui são:

Local na rede InternetVisitante

Cada visitante único terá uma única linha no banco de dados com informações como página de destino, hora do dia, SO, navegador, referenciador, IP etc.

Precisarei fazer consultas agregadas nesse banco de dados, como 'COUNT todos os visitantes que possuem Windows como SO e vieram do Bing.com'

Eu tenho centenas de sites para rastrear e o número de visitantes desses sites varia de algumas centenas por dia a alguns milhões por dia. No total, espero que esse banco de dados cresça cerca de um milhão de linhas por dia.

Minhas perguntas são:

1) O MySQL é um bom banco de dados para esse fim?

2) O que poderia ser uma boa arquitetura? Estou pensando em criar uma nova tabela para cada site. Ou talvez comece com uma única tabela e depois crie uma nova tabela (diariamente) se o número de linhas em uma tabela existente exceder 1 milhão (minha suposição está correta). Minha única preocupação é que, se uma tabela crescer muito, as consultas SQL podem ficar muito lentas. Então, qual é o número máximo de linhas que devo armazenar por tabela? Além disso, existe um limite no número de tabelas que o MySQL pode manipular.

3) É aconselhável fazer consultas agregadas em milhões de linhas? Estou pronto para aguardar alguns segundos para obter resultados para essas consultas. É uma boa prática ou existe outra maneira de fazer consultas agregadas?

Em poucas palavras,Estou tentando criar um tipo de configuração de data warehouse em larga escala que será pesada. Se você conhece algum estudo de caso ou relatório publicado, será ótimo!

questionAnswers(4)

yourAnswerToTheQuestion