Arquitectura de base de datos para millones de filas nuevas por día
Necesito implementar un servicio de análisis web desarrollado a medida para una gran cantidad de sitios web. Las entidades clave aquí son:
Sitio webVisitanteCada visitante único tendrá una sola fila en la base de datos con información como página de destino, hora del día, sistema operativo, navegador, referencia, IP, etc.
Tendré que hacer consultas agregadas en esta base de datos, como 'CONTAR a todos los visitantes que tienen Windows como SO y vinieron de Bing.com'
Tengo cientos de sitios web para rastrear y el número de visitantes para esos sitios web varía desde unos pocos cientos por día hasta unos pocos millones por día. En total, espero que esta base de datos crezca aproximadamente un millón de filas por día.
Mis preguntas son:
1) ¿MySQL es una buena base de datos para este propósito?
2) ¿Qué podría ser una buena arquitectura? Estoy pensando en crear una nueva tabla para cada sitio web. O tal vez comience con una sola tabla y luego genere una nueva tabla (diariamente) si el número de filas en una tabla existente excede 1 millón (es mi suposición correcta). Mi única preocupación es que si una tabla crece demasiado, las consultas SQL pueden ser dramáticamente lentas. Entonces, ¿cuál es el número máximo de filas que debo almacenar por tabla? Además, ¿hay un límite en el número de tablas que MySQL puede manejar?
3) ¿Es aconsejable realizar consultas agregadas en millones de filas? Estoy listo para esperar un par de segundos para obtener resultados para tales consultas. ¿Es una buena práctica o hay alguna otra forma de hacer consultas agregadas?
En una palabra,Estoy tratando de diseñar un tipo de configuración de almacén de datos a gran escala que será muy pesada.. Si conoce algún estudio de caso o informe publicado, ¡será genial!