Ver Mensaje Individual
  #4 (permalink)  
Antiguo 31/08/2010, 13:16
Avatar de huesos52
huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 10 meses
Puntos: 360
Respuesta: Balance de carga MySQL

nanshan para manejar cantidades tan altas de datos, considero recomendable entender primero como opera mysql en su interior.

Busca información acerca de la arquitectura de Mysql y como realiza los procesos, cual es el tratamiento que le da a las consultas y donde son almacenadas.

Por ejemplo en Oracle, con una tabla de 10'000.000 de registros, nos encontrabamos con un grave problema de eficiencia. La solución fue tan sencilla que quedé totalmente aterrado. Oracle en su arquitectura tiene un componente cargado en memoria principal (RAM) llamado shared pool. Este componente carga en caché las sentencias DML cifradas bajo una codificación de caracteres. Como los desarrolladores no cumplian estandares al momento de solicitar info a la base de datos por lo que un SELECT *FROM tabla es tratado de forma diferente a select *from tabla. Cuando se aplicaron filtros con WHERE pudimos notar que la shared pool estaba totalmente llena al cargar miles de veces en memoria la misma consulta pero con codificación diferente. La solución fue pedirle a los desarrolladores que manejaran estándares en el llamado de consultas para que cada que se quisiera consultar dicha tabla, toda la información se encontrara rapidamente en memoria y evitara constantes e innecesarias lecturas a disco.

De seguro, si entiendes un poco mejor el funcionamiento de mysql podrás identificar cual es el motivo de la lentitud de tu base de datos. Si el tema persiste, sería muy recomendable montar un cluster que te ayude distribuir la carga de datos como anteriormente lo has planteado.

saludos
__________________
Without data, You are another person with an opinion.
W. Edwads Deming