Tuneando MySQL y porque no, a MariaDB

MySQL y MariaDB, ambas usan la misma estructura de archivos de configuración, carpetas del sistema y demás. Bueno, MariaDB es un fork libre de MySQL escrita por Michael (Monty) Widenius.

Todos los que programamos alguna vez en PHP[CodeIgniter, ZendFramework, Yii, Laravel], Python[Django], whatever, necesitamos un sistema gestor de bases de datos, en este caso, cuando yo empecé me metieron de cabeza en MySQL, a long time ago[in this galaxy :D].

Pero MySQL/MariaBD, por defecto son algo vagos, nosotros debemos hacerle algunos ajustes con el fin de sacarle un poquito más de jugo. Existen algunos script como mysqltuner.pl o tuning-primer.sh que manejan nuestra instalación de MySLQ y nos dan detalles de como mejorar nuestro setup.

El archivo de configuración se encuentra en /etc/mysql/my.cnf y de él podemos modificar todo cuanto queramos, siempre buscando en Google, que significa cada directiva, no vaya a ser que en afan de optimizar, destruya :P.

[…]
key_buffer = 256M

max_allowed_packet = 16M
thread_stack = 192K
thread_cache_size = 100

table_open_cache = 16384
table_definition_cache = 8192

sort_buffer_size = 256K

read_buffer_size = 128K

read_rnd_buffer_size = 256K

myisam_sort_buffer_size = 64M
myisam_use_mmap = 1
thread_concurrency = 10
wait_timeout = 30

myisam-recover = BACKUP,FORCE

query_cache_limit = 10M
query_cache_size = 1024M
query_cache_type = 1

join_buffer_size = 4M

general_log_file = /var/log/mysql/mysql.log
general_log = 1

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

expire_logs_days = 10
max_binlog_size = 100M

innodb_buffer_pool_size = 2048M
innodb_log_file_size = 256M
innodb_log_buffer_size = 16M
innodb_flush_log_at_trx_commit = 0
innodb_thread_concurrency = 8
innodb_read_io_threads = 64
innodb_write_io_threads = 64
innodb_io_capacity = 50000
innodb_flush_method = O_DIRECT
innodb_file_per_table
innodb_additional_mem_pool_size = 256M
transaction-isolation = READ-COMMITTED

innodb_support_xa = 0
innodb_commit_concurrency = 8
innodb_old_blocks_time = 1000
[…]

Lea bien cada directiva de configuración antes de modificar. Este pedazo de archivo de configuración es para un server de MySQL con 16 GB de RAM con 15 bases de datos en MyISAM y 15 en InnoDB.

Juegue con los valores de las directivas y lea los logs a ver que se modifica/mejora/empeora.

Por el momento esto es todo. Un saludoy espero les sirva.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *