¿Tienes una cuenta? identificate: Usuario Contraseña o puedes obtener una gratis.

ToRo Blog

¡Al pesebre... fieras!

12
septiembre
2007

Optimizando MySQL

Feliz

o como “enchular” un poco la base de datos.

Cuando se tiene un sitio con literalmente cientos de consultas diferentes a la base de datos (MySQL) en ocasiones es difícil saber cual de ellas mata literalmente a la máquina: la base de datos llega a consumir todo el CPU y apache deja de responder.

Así que por un problema que tuvo Almita en la SEP, me puse a leer al respecto e hice algunos cambios en dos servidores que mantengo.

Activar log-slow-queries

[mysqld]
long_query_time  = 1
log-slow-queries

Activamos estas líneas en my.cnf (generalmente en /etc/my.cfg) y listo, ahora tendremos un archivo de log donde nos muestra el tiempo que se tarda dependiendo que consulta (en este caso mas de 1 segundo de tiempo), el tiempo de bloqueo si es que hubo, el número de resultados y la consulta en si (para lo cual sería muy útil ponerle alguna marca en cada consulta en forma de comentario).

Activar query_cache_size

Lo otro es activar el query_cache_size@ para consultas muy recurrentes, simplente en [mysqld] añadir:

query_cachesize = 32M

(el valor depende de muuuuchas cosas). Para analizarlo en una consola hacia MySQL:

SHOW STATUS LIKE "qcache%";

Y bueno ya, noto un poco menos lentas a las dos máquinas donde apliqué esos cambios.

Lectura obligada:



Escuchando: tangos
Almacenado en Software libre, Mysql [ Enlace | 4 comentarios ] del.icio.us del.icio.us Estrella este post *****
comparte esto
Comparte esta entrada (del.icio.us, por correo, etc) o agrega este blog a tu Google Reader.

Entradas relacionadas:
  1. MySQL 4.1
  2. PHP5 y extensión MySQLi
  3. Monitoreando consultas en MySQL
  4. Replicar base de datos MySQL
  5. Servidor de correo II

Han escrito 4 comentarios de «Optimizando MySQL»

foto firmost
Miércoles 12 de septiembre, 2007 18:39.

toro la forma de optimizar que describes está, mmh, cómo lo diré, dos tres pero no para clavarse, conozco una forma más eficiente y sobre todo más segura, yo adempás de lo que haces modifico algunas secuencias de apache, además de que asigno una bandera a la consulta del problema para hacer un historial, es algo extenso explicarlo pero cuando gustes lo comentamos

foto ToRo
Miércoles 12 de septiembre, 2007 20:09.

hahaha saliste mas cabrón que bonito

foto firmost
Jueves 13 de septiembre, 2007 14:43.

oye, toro, de perdido en mi comentario si suena como a que sé de lo que hablas, no sé ni madres maestro, es más no sé que es MySQL, menos apache, bueno sé que es un wey con penacho pero dudo mucho que esos estén dentro de una pc

(anonimo)Guti
Jueves 20 de septiembre, 2007 15:43. [usuario no registrado en ymipollo.com]

Imagino que ya estás ejecutando los binarios compilados con el Intel C++, que dan entorno al 10%-20% de rendimiento extra.

Si usted tiene una cuenta en ymipollo.com, identifíquese:
Usuario: Password: (recordar identificación en este blog)
De lo contrario, escriba sus datos (todos los campos son obligatorios.):
Nombre: Correo E.:
Blog/Web: recordar datos.
[ si eres visitante puedes obtener tus comentarios con foto suscribiendote a gravatar. Tenga en cuenta que como usuario anónimo, su dirección IP será almacenada y mostrada al dueño de la entrada en cada comentario. ]
Escriba su comentario:
Por favor escriba respecto al post, procure revisar su ortografía. Si su comentario no es respecto al tema, por favor no lo haga.

Usted escribirá este mensaje como:
Es posible que su comentario no aparezca de forma inmediata (o que nunca aparezca) eso depende de la decisión del autor de este blog.

enviarme correo cuando alguien comente suscribirse a este post.