O MySQL é um poderoso sistema de gerenciamento de banco de dados relacional de código aberto, ou em suma RDBMS. Foi lançado em 1995 (com 20 anos de idade). Ele usa a linguagem de consulta estruturada, que é provavelmente a escolha mais popular para gerenciar conteúdo dentro de um banco de dados. A versão mais recente do MySQL é a 5.6.25 e foi lançada em 29 de maio de 2015.
Um fato interessante sobre o MySQL é que o nome vem da filha de Michael Widenius (criador do MySQL), My. Embora haja muitos fatos interessantes sobre o MySQL, este artigo tem como objetivo mostrar algumas práticas úteis para ajudá-lo a gerenciar seu servidor MySQL.

Em abril de 2009, o projeto MySQL foi comprado pela Oracle. Como resultado, foi criado um fork da comunidade do MySQL chamado MariaDB. O principal motivo para a criação do fork foi manter o projeto gratuito sob a Licença Pública Geral.
Hoje, o MySQL e o MariaDB são um dos (se não o mais) frequentemente utilizados RDBMS para aplicações web, como WordPress, Joomla, Magento e outros.
Este artigo irá mostrar algumas dicas básicas, porém úteis, de como otimizar e ajustar o desempenho do MySQL/MariaDB. Por favor, tenha em mente que este artigo pressupõe que você já tenha o MySQL ou o MariaDB instalados. Se você ainda está se perguntando como instalá-los em seu sistema, você pode seguir nossos guias extensivos aqui:
- Instalando LAMP no RHEL/CentOS 7
- Instalando LAMP no Fedora 22
- Configurando LAMP no Ubuntu 15.04
- Instalando MariaDB no Debian 8
- Instalar MariaDB no Gentoo Linux
- Instalar MariaDB no Arch Linux
Importante: Antes de começar – não aceite essas sugestões cegamente. Cada configuração do MySQL é única e requer reflexão adicional antes de fazer quaisquer alterações.
Coisas que você precisa saber:
- O arquivo de configuração do MySQL/MariaDB está localizado em
/etc/my.cnf
. Sempre que você modificar este arquivo, será necessário reiniciar o serviço do MySQL para que as novas alterações tenham efeito. - Para escrever este artigo, a versão do MySQL 5.6 foi usada como modelo.
1. Habilitar o InnoDB file-per-table
Primeiro, é importante explicar que InnoDB é um mecanismo de armazenamento. MySQL e MariaDB usam o InnoDB como mecanismo de armazenamento padrão. No passado, o MySQL costumava manter tabelas e índices de banco de dados em um espaço de tabela do sistema. Esta abordagem era destinada a servidores cujo único propósito é o processamento de banco de dados e cujo disco de armazenamento não é usado para outros fins.
O InnoDB fornece uma abordagem mais flexível e cada informação do banco de dados é mantida em um arquivo de dados .ibd
. Cada arquivo .ibd representa um espaço de tabela próprio. Dessa forma, operações de banco de dados como “TRUNCATE” podem ser concluídas mais rapidamente e você também pode recuperar espaço não utilizado ao descartar ou truncar uma tabela de banco de dados.
Outra vantagem dessa configuração é o fato de que você pode manter algumas das tabelas do banco de dados em um dispositivo de armazenamento separado. Isso pode melhorar significativamente a carga de I/O em seus discos.
O innodb_file_per_table é ativado por padrão no MySQL 5.6 e superior. Você pode ver isso no arquivo /etc/my.cnf. A diretiva se parece com esta:
innodb_file_per_table=1
2. Armazenar Dados do Banco de Dados MySQL em uma Partição Separada
Observação: Essa configuração funciona apenas com o MySQL, mas não com o MariaDB.
Às vezes, as leituras/gravações do sistema operacional podem diminuir o desempenho do seu servidor MySQL, especialmente se estiverem localizadas no mesmo disco rígido. Em vez disso, eu recomendaria usar um disco rígido separado (de preferência SSD) para o serviço MySQL.
Para completar, você precisará conectar o novo disco ao seu computador/servidor. Para os fins deste artigo, vou assumir que o disco estará em /dev/sdb.
O próximo passo é preparar o novo disco:
# fdisk /dev/sdb
Agora pressione “n” para criar uma nova partição. Em seguida, pressione “p” para tornar a nova partição primária. Depois disso, defina o número da partição de 1-4. Em seguida, você irá selecionar o tamanho da partição. Pressione enter aqui. No próximo passo, você precisará configurar o tamanho da partição.
Se desejar utilizar o disco inteiro, pressione enter mais uma vez. Caso contrário, você pode definir manualmente o tamanho da nova partição. Quando estiver pronto, pressione “w” para escrever as alterações. Agora precisaremos criar um sistema de arquivos para nossa nova partição. Isso pode ser facilmente feito com:
# mkfs.ext4 /dev/sdb1
Agora vamos montar nossa nova partição em uma pasta. Eu nomeei minha pasta como “ssd” e a criei no diretório raiz:
# mkdir /ssd/
Estamos prontos para montar a nova partição que acabamos de criar na nova pasta:
# mount /dev/sdb1 /ssd/
Você pode realizar a montagem na inicialização adicionando a seguinte linha no arquivo /etc/fstab.
/dev/sdb1 /ssd ext3 defaults 0 0
Agora você está pronto para mover o MySQL para o novo disco. Primeiro pare o serviço MySQL com:
# 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
Agora copie todo o diretório do MySQL para o novo disco:
# cp /var/lib/mysql /ssd/ -Rp
Isso pode levar um tempo dependendo do tamanho de suas bases de dados MySQL. Quando esse processo estiver completo, renomeie o diretório do MySQL:
# mv /var/lib/mysql /var/lib/mysql-backup
Em seguida, criaremos um link simbólico.
# ln -s /ssd/mysql /var/lib/mysql
Agora você está pronto para iniciar seu MySQL e serviço web:
# service mysqld start # service httpd start # service nginx start
Neste ponto, suas bases de dados MySQL serão acessadas a partir do novo disco.
Source:
https://www.tecmint.com/mysql-mariadb-performance-tuning-and-optimization/