Optimizando bases de datos MySQL o MariaDB

Share on facebook
Share on twitter
Share on linkedin
Share on whatsapp
Share on telegram
Share on email

En el fichero /etc/my.cnf se guardan los parámetros de configuración de las bases de datos MySQL y MariaDB. Sin embargo, los valores por defecto puede que no nos sirvan y tengamos que personalizar alguno de ellos dependiendo de la capacidad de nuestro sistema y uso de nuestra base de datos.

Adjunto un ejemplo de los parámetros más interesantes que pueden mejorar el rendimiento de nuestra base de datos:

[root]# cat /etc/my.cnf
[mysqld]
#datadir=/var/lib/mysql
datadir=/MySQL/data
socket=/var/lib/mysql/mysql.sock
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
# Settings user and group are ignored when systemd is used.
# If you need to run mysqld under a different user or group,
# customize your systemd unit file for mariadb according to the
# instructions in http://fedoraproject.org/wiki/Systemd

# Habilitar la cache de consultas en memoria – 64MB por cada GB de RAM fisica
query_cache_type=1 # 0 desactiva cache de consultas, 1 la activa y 2 se activa bajo peticion
query_cache_size=256M
# Tamaño de cache de los indices – 32MB por cada GB de RAM fisica
key_buffer_size=128M
# Tamaño de la cache de busquedas – 1MB por cada GB de RAM fisica
sort_buffer_size=4M
# Tamaño de la cache de lecturas – 1MB por cada GB de RAM fisica
read_buffer_size=4M
# Tamaño maximo de una tabla temporal en RAM
tmp_table_size=1G
max_heap_table_size=1G # Valor recomendado igual a tmp_table_size
# Deshabilitar la resolucion de nombres por DNS. Solo por IP y no por hostname.
skip-name-resolve=1

# Numero maximo de hilos en ejecucion que se pueden cachear y reusar
# 100 – ((Threads_created / Connections) * 100)
# mysql> show status like ‘Threads_created’;
# mysql> show status like ‘Connections’;
thread_cache_size=95

# Motor innodb
innodb_file_per_table=ON
innodb_buffer_pool_size=256M
innodb_log_file_size=64M
innodb_log_files_in_group=8
innodb_read_io_threads=4
innodb_write_io_threads=8 #To stress the double write buffer

# Habilitamos los logs binarios para poder restaurar datos en caso de perdida
# Ejemplo:
# mysqlbinlog mysql-bin.000001 mysql-bin.000002 mysql-bin.000003 –database=db_name –start-datetime=”2016-07-07 00:12:00″ –stop-datetime=”2016-07-07 10:35:00″ | mysql -u root -p
log-bin=mysql-bin

[mysqld_safe]
log-error=/var/log/mariadb/mariadb.log
pid-file=/var/run/mariadb/mariadb.pid

#
# include all files from the config directory
#
!includedir /etc/my.cnf.d

[root]#

También nos puede ser de mucha utilidad el script escrito en PERL  mysqltuner.pl, que analiza las estadísticas de nuestra base de datos para sugerir cambios en los parámetros de arranque de la misma para mejorar su rendimiento o seguridad.

¿Te ha gustado? ¡Compártelo!

Share on facebook
Share on twitter
Share on linkedin
Share on whatsapp
Share on telegram
Share on email

SUSCRÍBETE A PUERTO53

Recibe un email periódico con los artículos más interesantes de Puerto53.com

Antes de suscribirte lee los términos y condiciones. Gracias.

Contenido Relacionado

Tutorial de ElasticSearch

Tabla de contenidos1 ¿Qué es ElasticSearch?2 Instalación de ElasticSearch2.1 Instalación de Java2.2 Instalación de ElasticSearch en Linux CentOS 72.2.1 Configuración

Leer más »

Artículos Recientes

Deja un comentario

About Author