MySQL es un poderoso sistema de gestión de bases de datos relacionales de código abierto o, en breve, RDBMS. Fue lanzado en 1995 (tiene 20 años). Utiliza Structured Query Language que es probablemente la opción más popular para administrar contenido dentro de una base de datos. La última versión de MySQL es 5.6.25 y fue lanzada el 29 de mayo de 2015.
Un dato interesante sobre MySQL es que el nombre proviene de la hija de Michael Widenius (creador de MySQL), My. Aunque hay muchos datos interesantes sobre MySQL, este artículo está destinado a mostrarte algunas prácticas útiles para ayudarte a gestionar tu servidor MySQL.

En abril de 2009 el proyecto MySQL fue comprado por Oracle. Como resultado se creó un bifurcación de la comunidad de MySQL llamada MariaDB. La razón principal para crear la bifurcación fue mantener el proyecto gratuito bajo la Licencia Pública General.
Hoy en día, MySQL y MariaDB son uno de los sistemas de gestión de bases de datos relacionales más utilizados (si no los más utilizados) para aplicaciones web como WordPress, Joomla, Magento y otros.
Este artículo te mostrará algunos consejos básicos, pero útiles, sobre cómo optimizar y ajustar el rendimiento de MySQL/MariaDB. Ten en cuenta que este artículo asume que ya tienes instalados MySQL o MariaDB. Si aún te preguntas cómo instalarlos en tu sistema, puedes seguir nuestras guías extensas aquí
- Instalación de LAMP en RHEL/CentOS 7
- Instalación de LAMP en Fedora 22
- Configuración de LAMP en Ubuntu 15.04
- Instalación de MariaDB en Debian 8
- Instalar MariaDB en Gentoo Linux
- Instalar MariaDB en Arch Linux
Importante: Antes de comenzar, no aceptes estas sugerencias ciegamente. Cada configuración de MySQL es única y requiere una consideración adicional antes de realizar cualquier cambio.
Cosas que necesitas saber:
- El archivo de configuración de MySQL/MariaDB se encuentra en
/etc/my.cnf
. Cada vez que modifiques este archivo, deberás reiniciar el servicio de MySQL para que los nuevos cambios surtan efecto. - Para escribir este artículo, se ha utilizado la versión de MySQL 5.6 como plantilla.
1. Habilitar InnoDB file-per-table
Es importante explicar que InnoDB es un motor de almacenamiento. MySQL y MariaDB utilizan InnoDB como motor de almacenamiento predeterminado. En el pasado, MySQL solía mantener las tablas de la base de datos y los índices en un espacio de tablas del sistema. Este enfoque estaba destinado a servidores cuyo único propósito es el procesamiento de bases de datos y cuyo disco de almacenamiento no se utiliza para ningún otro propósito.
El InnoDB proporciona un enfoque más flexible y cada información de la base de datos se guarda en un archivo de datos .ibd
. Cada archivo .ibd representa un espacio de tablas propio. De esta manera, las operaciones de base de datos como “TRUNCATE” pueden completarse más rápido y también puede recuperar espacio no utilizado al eliminar o truncar una tabla de base de datos.
Otro beneficio de esta configuración es que puede mantener algunas de las tablas de la base de datos en un dispositivo de almacenamiento separado. Esto puede mejorar considerablemente la carga de E/S en sus discos.
El innodb_file_per_table está habilitado de forma predeterminada en MySQL 5.6 y superior. Puede verlo en el archivo /etc/my.cnf. La directiva se ve así:
innodb_file_per_table=1
2. Almacene los Datos de la Base de Datos de MySQL en una Partición Separada
Nota: Esta configuración solo funciona con MySQL, pero no con MariaDB.
A veces, las lecturas/escrituras del sistema operativo pueden ralentizar el rendimiento de su servidor MySQL, especialmente si se encuentran en el mismo disco duro. En su lugar, recomendaría utilizar un disco duro separado (preferiblemente SSD) para el servicio de MySQL.
Para completar esto, deberá conectar el nuevo disco a su computadora/servidor. Para los fines de este artículo, asumiré que el disco estará en /dev/sdb.
El siguiente paso es preparar la nueva unidad:
# fdisk /dev/sdb
Ahora presione “n” para crear una nueva partición. Luego presione “p” para hacer la nueva partición primaria. Después, establezca el número de partición de 1-4. A continuación, seleccione el tamaño de la partición. Presione enter aquí. En el siguiente paso, deberá configurar el tamaño de la partición.
Si desea utilizar todo el disco, presione enter una vez más. De lo contrario, puede establecer manualmente el tamaño de la nueva partición. Cuando esté listo, presione “w” para escribir los cambios. Ahora necesitaremos crear un sistema de archivos para nuestra nueva partición. Esto se puede hacer fácilmente con:
# mkfs.ext4 /dev/sdb1
Ahora montaremos nuestra nueva partición en una carpeta. He nombrado mi carpeta “ssd” y la he creado en el directorio raíz:
# mkdir /ssd/
Estamos listos para montar la nueva partición que acabamos de crear en la nueva carpeta:
# mount /dev/sdb1 /ssd/
Puede realizar el montaje al iniciar agregando la siguiente línea en el archivo /etc/fstab.
/dev/sdb1 /ssd ext3 defaults 0 0
Ahora estás listo para mover MySQL al nuevo disco. Primero detenga el servicio de MySQL con:
# service mysqld stop
I would recommend you stopping Apache/nginx as well to prevent any attempts to write in the databases:
# service httpd stop # service nginx stop
Ahora copie todo el directorio de MySQL en la nueva unidad:
# cp /var/lib/mysql /ssd/ -Rp
Esto puede tardar un tiempo dependiendo del tamaño de sus bases de datos de MySQL. Una vez que este proceso esté completo, cambie el nombre del directorio de MySQL:
# mv /var/lib/mysql /var/lib/mysql-backup
A continuación, crearemos un enlace simbólico.
# ln -s /ssd/mysql /var/lib/mysql
Ahora estás listo para iniciar tu MySQL y servicio web:
# service mysqld start # service httpd start # service nginx start
En este punto, sus bases de datos de MySQL se accederán desde la nueva unidad
Source:
https://www.tecmint.com/mysql-mariadb-performance-tuning-and-optimization/