O MySQL é um poderoso sistema de gerenciamento de banco de dados relacional de código aberto, ou, em resumo, RDBMS. Foi lançado em 1995 (com 20 anos de idade). Utiliza a Linguagem de Consulta Estruturada, que é provavelmente a escolha mais popular para gerenciar conteúdo em 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 ajudar a gerenciar o servidor MySQL.

Em abril de 2009, o projeto MySQL foi adquirido pela Oracle. Como resultado, foi criado um fork da comunidade MySQL chamado MariaDB. O principal motivo para a criação do fork foi manter o projeto livre sob a Licença Pública Geral.
Hoje, o MySQL e o MariaDB estão entre os RDBMS mais frequentemente usados, se não os mais usados, para aplicativos da web, como WordPress, Joomla, Magento e outros.
Este artigo mostrará algumas dicas básicas, mas úteis, sobre 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 estiver se perguntando como instalá-los em seu sistema, 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çarmos – não aceite estas sugestões cegamente. Cada configuração do MySQL é única e requer reflexão adicional antes de qualquer mudança.
Coisas que precisa saber:
- O arquivo de configuração do MySQL/MariaDB está localizado em
/etc/my.cnf
. Cada vez que você modifica este arquivo, você precisará reiniciar o serviço do MySQL para as novas mudanças serem aplicadas. - Para escrever este artigo, a versão do MySQL 5.6 foi usada como modelo.
1. Ativar o InnoDB arquivo-por-tabela
A primeira coisa que é importante explicar é que InnoDB é um motor de armazenamento. MySQL e MariaDB usam o InnoDB como motor de armazenamento padrão. No passado, o MySQL costumava manter as tabelas e índices do banco de dados em um sistema de espaço de tabela. Esta abordagem era destinada a servidores que tinham o único propósito de processamento de banco de dados e o disco de armazenamento não era usado para outros fins.
O InnoDB oferece uma abordagem mais flexível, e cada informação do banco de dados é mantida em um arquivo de dados .ibd
. Cada arquivo .ibd representa seu próprio espaço de tabela. Desta forma, as operações de banco de dados, como “TRUNCATE”, podem ser concluídas mais rápido e você também pode reclamar espaço não usado quando eliminando ou truncando uma tabela do banco de dados.
Outro benefício desta 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 consideravelmente a carga de I/O em seus discos.
O innodb_file_per_table está habilitado por padrão no MySQL 5.6 e acima. Você pode ver isso no arquivo /etc/my.cnf. A diretiva parece assim:
innodb_file_per_table=1
2. Armazene os Dados do Banco de Dados do MySQL em Partições Separadas
Nota: Este setup funciona somente com MySQL, não funcionando com MariaDB.
Às vezes, as leituras/gravações do SO podem atrasar a performance do seu servidor MySQL, especialmente se estiver no mesmo disco rígido. Em vez disso, eu recomendaria usar um disco rígido separado (preferencialmente SSD) para o serviço do MySQL.
Para concluir, você precisará anexar o novo disco à sua máquina/servidor. Para fins deste artigo, assumerei que o disco estará sob /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 a 4. Em seguida, você selecionará o tamanho da partição. Pressione enter aqui. No próximo passo, você precisará configurar o tamanho da partição.
Se deseja usar 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 a 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 de “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 do 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 dos seus bancos de dados do MySQL. Uma vez que este 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 o MySQL e o serviço web:
# service mysqld start # service httpd start # service nginx start
Neste ponto, seus bancos de dados do MySQL serão acessados a partir do novo disco.
Source:
https://www.tecmint.com/mysql-mariadb-performance-tuning-and-optimization/