Espacio de tecnologia, software libre y sus derivados. Una horda de monos entrenados escriben de vez en cuando por aqui algunas noticias, opiniones e incluso alguna que otra cosa fuera del tema. Maqueros, favor de abstenerse que no somos lo suficientemente guapos.

Piano daemon

Criterios de Optimizacion para MySQL 5.0

Los siguientes criterios de configuracion, los he aplicado a un servidor de 8 cores y 8 gb en RAM, y la cosa funciona de maravilla.
Sobre el MYSQL que corre en este servidor hay tablas tanto innodb como myisam. incluyo parametros para las dos engines.

[mysqld]

innodb_log_buffer_size=8M
#Explicacion: medida del buffer que innodb usara para su archivo de log.
#Consecuencia:Un buffer de log grande, permite a transacciones extensas ejecutarce, sin necesidad de acceso a disco antes de que la
              # transaccion se confirme.
#Criterio de calculo: 1MB por cada GB de RAM.

innodb_buffer_pool_size=4294967296
#Explicacion: Empleado para almacenamiento intermedio de los datos e indices de sus tablas
#Consecuencia: Mientras mas grande sea este valor menos operaciones de IO disco seran necesarias para acceder a los datos de las tablas.
#Criterio de calculo: En un servidor de base de datos dedicado se puede asignar hasta el 80% de la memoria RAM. No dedicados Menos del 50% de RAM.

innodb_buffer_mem_pool_size=16M
#Explicacion: almacena info del diccionario de datos y estructuras internas, el valor por defecto es de 1MB
#Consecuencia: Evita que se haga paginacion a disco cuando, se acaba la memoria de este pool.
#Criterio de calculo: Entre mas tablas se tengan en la aplicacion, mayor debera ser el tamaño de este buffer,. 

join_buffer_size=16777216
#Explicacion: buffer que se usa para joins que no usan índices (full joins)
#Consecuencia: obtencion de un full join más rápido ( cuando se añaden índices no es posible.)
#Criterio de calculo:2097152 bytes por cada Gigabyte de RAM.

skip-bdb
skip-ndbcluster
#Explicacion: Deshabilita el soporte para base de datos bdb y ndbcluster
#Consecuencia: Ahorro en la memoria asignada por sistema operativo al proceso mysqld

innodb_data_file_path=/dev/hdc1:250MBraw;/dev/hdc2:250MBraw
#Explicacion: Utilizar dispositivos crudos como Datafiles
#Consecuencia: Aumento en velocidad relacionada a operaciones de IO sobre disco.

query_cache_size=134217728
#Explicacion: Almacena el texto de una consulta SELECT junto con el resultado que se le envió al cliente.
#Consecuencia: Si se recibe una consulta idéntica posteriormente, el servidor devuelve el resultado de la
#              caché de consultas en lugar de parsear y ejecutar la consulta de nuevo.
#Criterio de calculo:16777216 bytes por cada Gigabyte de RAM.

query_cache_limit=1M
#Criterio de calculo: consultas menores a 1MB no merecen ser cacheadas.

query_cache_type=1
#Consecuencia: Permite el cacheo excepto para aquellos comandos que empiecen con SELECT SQL_NO_CACHE

key_buffer_size=100663296
#Explicacion: Cachea los bloques de índices para tablas MyISAM. Cada vez que una búsqueda usa un índice,
#             MySQL mirará antes de nada a ver si el índice relevante está o no en memoria.
#Consecuencia: Incrementando el valor se obtiene un mejor tratamiento de índices y por consecuencia, mejor rendimiento.
#Criterio de calculo:12582912 bytes por cada Gigabyte de RAM. Pero si solo se utilizan tablas MyISAM utilice  5% a 50% de la RAM.

sort_buffer=67108864
#Explicacion: Búffer de ordenación se usa para responder a búsquedas que involucren el ordenamiento de los datos -aquellas
#             con una sentencia ORDER BY en ellas. Además, el búffer de ordenaciónse usa para las búsquedas que involucren
#             agrupar datos -aquellas con una sentencia GROUP BY.
#Consecuencia: Reduce dramáticamente la cantidad de tiempo que se usa para ordenar grandes grupos de resultados
#Criterio de calculo: 8388608  bytes por cada Gigabyte de RAM.

read_buffer_size=8M
#Explicacion: Cada thread que realiza un escaneo secuencial reserva un buffer de su tamaño (en bytes) para cada tabla que escanea.
#             Si realiza muchos escaneos secuenciales, puede incrementar este valor.
#Consecuencia: Mejora el rendimiento en los escaneos secuenciales.
#Criterio de calculo: 1MB por cada Gigabyte de RAM.

open_files_limit=4096
#Explicacion: limite de archivos abiertos por mysql
#Consecuencia: Ciertas operaciones requeriran mas de 1024 descriptores de archivos abiertos en mysqld, sobre todo aplicaciones web.
#Criterio de calculo: 1024 es el predeterminado, aumente este valor si observa errores referentes a esto en el log de errores de mysql.
#                     No aumente este valor mas alla de 4kb.

[mysqldump]
quick

Si tienen algo que agregar a esta configuracion, u algun otro criterio, lo anexare a este articulo a la brevedad.
Feliz año nuevo 2007 :)

Comenta