Entradas

Mostrando las entradas etiquetadas como innodb

Optimizando MySQL 5.6 innodb_flush_method

Imagen
El parámetro innodb_flush_method es el método que utilizará MySQL para vaciar los datos y logs que vaya recopilando durante su funcionamiento. Este post en realidad será una traducción del manual de MySQL y otras fuentes del inglés porque como se verá la configuración ideal es a base de prueba y error. Veamos un glosario de términos necesarios para entender este post fsync La función fsync () puede ser utilizada por una aplicación para indicar que todos los datos asociados  a archivos abiertos serán transferidos al dispositivo de almacenamiento asociado con el archivo descrito de una manera dependiente de la implementación del sitema. La función fsync no se detiene hasta que el sistema ha completado la acción o hasta que se detecta un error. La función fsync () obliga a todas las operaciones actuales en la cola de entrada / salida asociadas con un archivo a la sincronización. Todas las operaciones de E / S se realizan cuidando la integridad del archivo al finalizar el proces...

Optimizando MySQL 5.6 innodb_buffer_pool_size

Imagen
Uno de los parámetros de configuración que hablé en el artículo anterior era innodb_buffer_pool_size , como su nombre indica es el buffer de almacenamiento de innodb, mientras mayor sea este valor menores serán las lecturas y escrituras en el disco duro y por consiguiente mayor será la velocidad de las operaciones. Lo único malo es que este buffer va directamente a la memoria RAM con lo cual si es poca tenemos que ajustarnos. El valor por defecto en MySQL 5.6.10 son 100 MB y lo que se recomienda en un servidor dedicado es el 80 % de la memoria RAM, pero bueno siendo MySQL muy pocos utilizamos un servidor dedicado para ello casi siempre compartimos con apache y otros servicios con lo cual lo mejor es ir probando configuraciones hasta dar con la ideal, yo tengo 3 GB de RAM y por ahora he puesto un buffer de 700 MB y no he notado carga en el servidor pero si una mejoría increíble en el acceso a disco. Os dejo las gráficas. Veamos el comportamiento del buffer innodb, nótese el cambio dr...

Optimizando InnoDB en MySQL 5.6

Imagen
Realmente MySQL 5.6 no es la panacea, trae, según los desarrolladores, muchas mejoras en InnoDB, yo a simple vista no he podido observar ninguna salvo una ligera mejora en la velocidad, aún no he probado el FULL TEXT INDEX. Lo que si se nota nada más actualizar MySQL es el aumento exponencial de los ficheros asociados a innodb, fundamentalmente el fichero ibdata. Mysql guarda las tablas en un fichero denominado ibdata1, y aunque trunques las tablas y las vacíes, este fichero no decrece. Lo recomendable cuando instalas MySQL 5.6 (o actualizas a esta versión) es hacer un backup de cada tabla (así es más fácil la restauración en caso de error), borrar todas las tablas y las carpetas asociadas en /var/lib/mysql (salvo la de mysql), borrar los archivos de log de innodb (ib_logfile0 y ib_logfile1) y el archivo ibdata1. Una vez hemos hecho esto modificamos nuestro archivo my.cnf ubicado en /etc/ y ponemos las siguientes líneas: innodb_autoinc_lock_mode=0 innodb_file_per_table=1 innodb_fl...

MySQL 5.6.11 error 1146

Al parece hay algún tipo de error en la instalación de algunas versiones de MySQL o en la actualización de algunas (a mi me ha pasado actualizando de la 5.6.10 a la 5.6.11), en el cual te pueden dar los siguientes errores: ERROR 1146 (42S02) at line 36: Table 'mysql.innodb_table_stats' doesn't exist ERROR 1146 (42S02) at line 45: Table 'mysql.innodb_index_stats' doesn't exist ERROR 1146 (42S02) at line 73: Table 'mysql.slave_relay_log_info' doesn't exist ERROR 1146 (42S02) at line 102: Table 'mysql.slave_master_info' doesn't exist ERROR 1146 (42S02) at line 120: Table 'mysql.slave_worker_info' doesn't exist Sin embargo si entras en un administrador de MySQL como SQLYog puedes ver que las tablas existen pero luego al intentar abrirlas te sale el error Error CODE: 1146 TABLE ‘mysql.innodb_table_stats’ doesn’t exist Esto ocurre al tener activada en nuestro my.cnf la opción innodb_file_per_table. Al parecer al actualizar MySQ...

MySQL 5.6 en CentOS 6 con PowerStack

Imagen
Todos los que trabajan con versiones estables y profesionales de Linux saben que la llegada de las últimas versiones de un determinado software casi nunca llegan con los repositorios oficiales, siempre es necesario utilizar repositorios de terceros que complementan o actualizan nuestro servidor. El trio apache + PHP + MySQL no está exento de este problema y si bien es cierto que para CentOS contábamos con los repositorios Remi estos últimamente están algo desfasados, sobre todo con apache y MySQL, fundamentalmente este último. Buscando un poco de información por internet he encontrado en foros oficiales que es muy probable que Remi deje de dar soporte a MySQL, esto fundamentalmente tras la compra de esta última por Oracle. Remi comenzaría a utilizar MariaDB, una base de datos de los fundadores de MySQL que muchos dicen que es mejor pero pocos han probado. Entonces ¿que hacer si queremos seguir teniendo las ultimas versiones de MySQL utilizando Yum, esta brillante herramienta de Cent...