Necesito implementar un servicio analítico web desarrollado a medida para una gran cantidad de sitios web. Las entidades claves aquí son:Arquitectura de base de datos para millones de nuevas filas por día
- sitio web
- Visitante
cada visitante único tendrá que tienen una sola fila en la base de datos con información como página de destino, la hora del día, sistema operativo, navegador, referente , IP, etc.
necesitaré hacer consultas agregadas en esta base de datos como 'contar todos los visitantes que tienen Windows como sistema operativo y venían de Bing.com'
Tengo cientos de sitios web para rastrear y el número de visitantes para esos sitios web varía de unos pocos cientos por día a pocos millones por día. En total, espero que esta base de datos crezca en aproximadamente un millón de filas por día.
Mis preguntas son:
1) ¿Es una buena base de datos MySQL para este fin?
2) ¿Qué podría ser una buena arquitectura? Estoy pensando en crear una nueva tabla para cada sitio web. O tal vez comenzar con una sola tabla y luego generar una nueva tabla (a diario) si el número de filas en una tabla existente supera el 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 la cantidad máxima de filas que debo almacenar por mesa? Además, hay un límite en la cantidad de tablas que MySQL puede manejar.
3) ¿Es aconsejable hacer consultas agregadas sobre millones de filas? Estoy listo para esperar unos segundos para obtener resultados de tales consultas. ¿Es una buena práctica o hay alguna otra manera de hacer consultas agregadas?
En pocas palabras, Estoy tratando de diseñar un tipo de configuración de depósito de datos a gran escala que será escribir pesado. Si conoce algún estudio de caso o informe publicados, ¡será genial!
Si ya ha diseñado su base de datos. ¿Puedes compartir el diseño de la base de datos? –