RSS |

Blog de Omar

Just another WordPress weblog

Advertisement

Tuning MySQL Server

Noviembre 3, 2008 | 4 comments | Linux, MySQL

sakila_switchboardInstalar MySQL Server y comenzarlo a usar es muy sencillo, puede ser tan sencillo como saber instalar un rpm, quizas usar yum o apt-get y funcionara sin ningun problema, pero acaso dejar las opciones por defecto es suficiente? se podrian sorprender de la cantidad de opciones que tiene este sistema gestor de base de datos.

Escuchar frases como: "MySQL es una base de dato para principiantes", "MySQL es solo para pruebas", "MySQL es solo para empresas medianas"; son frases que han quedado en el pasado (alla por el 2004 y estamos a puertas del 2010), hablar ahora de MySQL es hablar de un sistema gestor de base de datos serio, rapido, de uso en empresas grandes y en sistemas de produccion y sobre todo practico, que no tiene  nada que envidiar a otras bases de datos y que ademas no tiene porque ser gratis ya que cuenta con un soporte segun las necesidades de nuestra organizacion.

Bueno volvamos al tema, hacer un tuning de nuestro servidor MySQL no es muy complicado solo requiere tener los conocimientos de como funciona nuestro servidor MySQL, por cuestiones de tiempo no podre explicar todo asi que solo mostrare donde hacer los cambios basicos.

El archivo que debemos modificar es my.cnf (en Windows no recuerdo el nombre, pero usen Linux es mucho mejor jejejeje), por lo general el archivo esta en /etc/my.cnf y debemos modificarlo para mejorar el rendimiento de nuestro servidor, en Fedora el archivo no contiene casi nada y las variables inician con sus valores por defecto, en mi caso mi archivo my.cnf quedo de esta manera:

Noten que todas las varibles deben estar dentro de la etiqueta mysqld.

[mysqld]

port = 3306
socket = /var/lib/mysql/mysql.sock
skip-lockingkey_buffer = 16
M
max_allowed_packet = 1M
table_cache = 64net_buffer_length = 8Kmyisam_sort_buffer_size = 8M
bind-addres= 0.0.0.0

## Ubicacion del log de consultas que superen long-query-time###
log-slow-queries=/var/log/mysql-slow.log
## Maximo tiempo antes de que se almacene en mysql-slow.log ###
long_query_time=3
## Almacene consultas en mysql-slow.log que no tengan indices ##
log-queries-not-using-indexes
## Cache para para llaves, se recomienda que sea el 25% de la memoria fisica total###
key_buffer_size=1024M
## Mejora la cache para consultas que contengan ORDER BY ####
read_rnd_buffer_size=4M
## Mejora el rendimiento de consultas GROUP BY ###
sort_buffer_size=512K
## Aumenta el buffer de lectura ###

read_buffer_size=4M
## Aumenta el buffer para el insert ###

bulk_insert_buffer_size=16M
## Aumenta buffer para consultas JOIN ###

join_buffer_size=1M

## aumenta cache de los ilos por conexion ##
thread_cache_size=1M
query_cache_size=64M
##Maximo de 50 conexiones simultaneas####
max_connections=50
##Tiempo maximo de conexion sin enviar informacion (3600 segundos)###
wait_timeout=3600

Coloque una breve explicacion a algunas opciones pero no a todas, les recomiendo que lean el manual de MySQL para saber que funcion cumplen todas los parametros colocados.

Pero como saber que nuestro servidor MySQL ha mejorado su rendimiento? pues eso lo tratare en el siguiente post.

Seria interesante que comenten sobre el uso de MySQL, es decir si lo usan para servicios en produccion y que tipos de servicios. Saludos!

Popularity: 4% [?]

Si te gusto este post, asegurate de suscribirte a mi RSS feed!

Omar Palomino

Hola mi nombre es Omar Palomino. Si te gustan las noticias de mi blog, no olvides suscribirte a la página. Puedes leer más en Acerca de MI, o bien ponerte en contacto conmigo al correo: omarc320@gmail.com

More Posts - Website

Post Relacionados

SI TE GUSTO ESTE ARTICULO, COMPARTELO!


Comments

There are 4 comments for this post.

  1. Pablo on Reply to this comment Noviembre 15, 2008 10:25 am

    Omar gracias por el tutorial, me pongo ahora mismo en campañana de utilizar esta herramienta.

  2. Benja on Reply to this comment Noviembre 27, 2008 1:45 pm

    Hola, tengo una tabla con mas de 500,000 registros y desde que le inserte registros hasta llegar a esa cantidad (500,000) se puso muy, pero muy lenta, le active el cache, pero la verdad no creo que sea suficiente, intente usar el sql-(algo) que esta escrito en perl y es para tunear la base, pero no pude hacerlo….
    gracias por sus comentarios

    otra cosa, el archivo my.cnf esta pero al parecer no tiene nada adentro, en cosola escrivo vi my.cnf y esta vacio, que estoy haciendo mal???

    gracias por su ayuda de antemano

  3. Omar Palomino on Reply to this comment Diciembre 30, 2008 11:46 pm

    Hola Benja,
    Disculpa la demora en contestarte pero en estas fechas todos andamos cortos de tiempo.
    Respecto a tu pregunta, el motivo por el cual una consulta se puede volver muy lenta puede tener muchos factores y un gran factor de lentitud es la ausencia de llaves primarias, asi que te pediria revises eso.
    Respecto a sql-bench porque no puedes ejecutarlo? en el post creo que esta explicado de manera muy clara sino es asi indicame donde esta tu duda.
    Para terminar tu archivo my.cnf donde esta ubicado? usas Windows o Linux? dame mas informacion por favor.

    Saludos,

    Omar

  4. Rogelio on Reply to this comment Octubre 6, 2011 12:46 pm

    disculpa la duda: tengo un servidor dedicado contratado y su SO es linux, modifique el archivo my.cnf porque cuando tengo muchas visitas se cae el server y me dicen que es porque son muchas las consultas, la pregunta es: uso wordpress para el sitio tengo que mdificar los parametro?

    key_buffer = 512M
    max_allowed_packet = 2M
    thread_stack = 128K
    thread_cache_size = 16

    sort_buffer_size = 2M
    read_buffer_size = 2M
    myisam_sort_buffer_size = 64M
    thread_cache = 16

    myisam-recover = BACKUP
    #max_connections = 100
    table_cache = 512
    thread_concurrency = 8

    query_cache_limit = 4M
    query_cache_size = 256M

    log_slow_queries = /var/log/mysql/mysql-slow.log
    long_query_time = 3

    PD la pagina es de noticias y no tiene horas pico, cuando sucede alguna noticia entran muchas personas, tengo un promedio de 3000 usuarios simultaneos cuando me tumba la pagina.

    GRACIAS!!!

Write a Comment

*

Spam Protection by WP-SpamFree