¿Cómo almacena grandes cantidades de datos de impresión / registro en MySQL sin desactivar el servidor MySQL?

1. ¡NO ENTRE EN PANICO!
2. Cambie su tipo de tabla a InnoDB: es mejor para las inserciones (que está haciendo mucho) que MyIsam.
3. A menudo, el bloqueo se debe a una razón que no se espera, como la apertura de muchos subprocesos. Comprueba cuántos hilos tienes abiertos en cualquier momento, cuánto tiempo tardan en morir, etc.
4. Verifique su código, tanto sus declaraciones de MySql como el cierre de sus conexiones o la ejecución de conexiones permanentes.
5. Ejecútelo todo a través de un proxy. Me gusta HAProxy, pero también hay disponibles servidores proxy específicos de SQL.
6. Tune tune tune.
7. Actualice su servidor.
8. Si todavía no tiene alegría, debe comenzar a buscar otras tecnologías de DB o agrupación.

El registro de visitas desde 100 sitios debería ser una carga bastante baja en un servidor MySql, a menos que sean sitios masivos. Debería haber solucionado su problema en el punto 5.

Recomiendo usar Flume para llenar un clúster HDFS, que también puede ejecutar Hive o HBase. Consulte la respuesta del usuario de Quora a ¿Cómo se puede usar Hadoop para el seguimiento de clics? para más detalles.

Scribe, que es de fuente abierta por Facebook, se usa hoy en día para agregar datos de registro transmitidos desde un conjunto de servidores ( http://github.com/facebook/scribe ). Por supuesto, esto no será una solución rápida para su problema, pero teniendo en cuenta que está obteniendo las impresiones de más de 100 sitios web, deberá considerar algún tipo de arquitectura de procesamiento y recopilación distribuida para poder manejar ese tipo de datos. .