Configuração e Ajuste do MySQL

MySQLBeginner
Pratique Agora

Introdução

Neste laboratório, você aprenderá os fundamentos da configuração do servidor MySQL e do ajuste de desempenho. Você começará inspecionando as configurações atuais do servidor, depois modificará um parâmetro de desempenho chave, o innodb_buffer_pool_size, para ver como as alterações são aplicadas.

O laboratório irá guiá-lo através da edição do arquivo de configuração do MySQL, reiniciando o servidor para aplicar as alterações e verificando se as novas configurações estão ativas. Finalmente, você aprenderá um método básico para analisar o desempenho de consultas usando o profiler integrado do MySQL. Isso fornecerá uma base para otimizar seu banco de dados para diferentes cargas de trabalho.

Este é um Lab Guiado, que fornece instruções passo a passo para ajudá-lo a aprender e praticar. Siga as instruções cuidadosamente para completar cada etapa e ganhar experiência prática. Dados históricos mostram que este é um laboratório de nível iniciante com uma taxa de conclusão de 94%. Recebeu uma taxa de avaliações positivas de 94% dos estudantes.

Visualizar a Configuração Atual do MySQL

Antes de fazer qualquer alteração, é crucial entender a configuração atual do seu servidor MySQL. Neste passo, você se conectará ao MySQL e inspecionará o valor de uma variável crítica de desempenho, innodb_buffer_pool_size.

Primeiro, abra o terminal do seu desktop.

Conecte-se ao servidor MySQL como o usuário root. Neste ambiente de laboratório, você pode usar sudo para se conectar sem senha.

sudo mysql -u root

Uma vez conectado, você verá o prompt do MySQL (mysql>).

Variáveis de sistema controlam o comportamento do servidor MySQL. A variável innodb_buffer_pool_size determina a quantidade de memória alocada para cache de dados e índices para tabelas InnoDB. Um buffer pool de tamanho adequado é essencial para um bom desempenho.

Use o comando SHOW VARIABLES com uma cláusula LIKE para encontrar o valor atual desta variável.

SHOW VARIABLES LIKE 'innodb_buffer_pool_size';

Você verá uma saída semelhante à seguinte, mostrando o valor padrão em bytes. Anote este valor, pois você o alterará no próximo passo.

+--------------------------+-----------+
| Variable_name            | Value     |
+--------------------------+-----------+
| innodb_buffer_pool_size | 134217728 |
+--------------------------+-----------+
1 row in set (0.01 sec)

Agora que você verificou a configuração atual, pode sair do shell do MySQL.

exit

Modificar o Arquivo de Configuração do MySQL

As configurações do MySQL podem ser alteradas temporariamente para a sessão atual ou permanentemente em um arquivo de configuração. Para que uma alteração persista após reinicializações do servidor, você deve editar o arquivo de configuração. Neste passo, você modificará /etc/mysql/my.cnf para aumentar o innodb_buffer_pool_size.

Abra o arquivo de configuração do MySQL usando o editor de texto nano com privilégios de sudo.

sudo nano /etc/mysql/my.cnf

Role para baixo para encontrar a seção [mysqld]. Esta seção contém configurações específicas para o daemon do servidor MySQL. Adicione a seguinte linha sob o cabeçalho [mysqld] para definir o tamanho do buffer pool para 256 megabytes.

innodb_buffer_pool_size=256M

Sua seção [mysqld] agora deve se parecer com algo assim:

[mysqld]
innodb_strict_mode=OFF
init_connect='SET NAMES utf8'
character-set-server = utf8
collation-server=utf8_general_ci
innodb_buffer_pool_size=256M

Agora, salve o arquivo e saia do nano. Pressione Ctrl+X, digite Y para confirmar as alterações e pressione Enter para escrever no arquivo.

As alterações no arquivo de configuração só terão efeito após a reinicialização do servidor MySQL. Use o comando service para reiniciá-lo.

sudo service mysql restart

Você agora atualizou permanentemente a configuração. No próximo passo, você verificará se a alteração está ativa.

Verificar a Alteração da Configuração

Após modificar o arquivo de configuração e reiniciar o servidor, você deve verificar se a nova configuração foi aplicada corretamente. Neste passo, você se reconectará ao MySQL e verificará novamente a variável innodb_buffer_pool_size.

Conecte-se ao servidor MySQL.

sudo mysql -u root

Agora, execute o comando SHOW VARIABLES novamente para ver o novo valor.

SHOW VARIABLES LIKE 'innodb_buffer_pool_size';

A saída agora deve mostrar o novo valor em bytes. O MySQL converte automaticamente 256M (256 megabytes) para 268435456 bytes.

+--------------------------+-----------+
| Variable_name            | Value     |
+--------------------------+-----------+
| innodb_buffer_pool_size | 268435456 |
+--------------------------+-----------+
1 row in set (0.00 sec)

Comparar este valor com o que você anotou no Passo 1 confirma que sua alteração de configuração foi bem-sucedida e está agora ativa.

Você pode sair do shell do MySQL.

exit

Analisar o Desempenho da Consulta

O ajuste de variáveis do servidor é feito para melhorar o desempenho de consultas. Embora uma análise profunda seja complexa, você pode usar o profiler de consultas integrado do MySQL para obter uma medição básica do tempo de execução de consultas. Neste passo, você criará uma tabela de teste, inserirá dados e analisará uma consulta simples.

Primeiro, conecte-se ao servidor MySQL.

sudo mysql -u root

Crie um novo banco de dados chamado testdb e mude para ele.

CREATE DATABASE IF NOT EXISTS testdb;
USE testdb;

Em seguida, crie uma tabela chamada employees para armazenar dados de exemplo.

CREATE TABLE employees (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(100),
    department VARCHAR(50),
    salary INT
);

Insira alguns registros na tabela employees.

INSERT INTO employees (name, department, salary) VALUES
('Alice', 'Sales', 60000),
('Bob', 'Engineering', 80000),
('Charlie', 'Sales', 65000),
('David', 'Marketing', 55000);

Agora, habilite o profiler de consultas para sua sessão. Isso registrará dados de desempenho para consultas subsequentes.

SET profiling = 1;

Execute uma consulta que você deseja analisar. Por exemplo, vamos encontrar todos os funcionários do departamento de 'Sales'.

SELECT * FROM employees WHERE department = 'Sales';

Para ver os resultados de desempenho, use o comando SHOW PROFILES. Isso lista as consultas que você executou desde que habilitou o profiling e suas durações.

SHOW PROFILES;

A saída será semelhante a esta, mostrando a duração de cada consulta em segundos.

+----------+------------+-------------------------------------------------------+
| Query_ID | Duration   | Query                                                 |
+----------+------------+-------------------------------------------------------+
|        1 | 0.00038500 | SELECT * FROM employees WHERE department = 'Sales'    |
+----------+------------+-------------------------------------------------------+
1 row in set, 1 warning (0.00 sec)

Esta coluna Duration fornece uma linha de base para o desempenho da consulta. Em um cenário do mundo real, você usaria esta ferramenta para comparar a velocidade das consultas antes e depois das alterações de configuração em conjuntos de dados muito maiores.

Você usou com sucesso o profiler para analisar uma consulta. Agora você pode sair do shell do MySQL.

exit;

Resumo

Neste laboratório, você aprendeu o processo básico de configuração e ajuste de um servidor MySQL. Você praticou como visualizar a configuração atual do servidor inspecionando variáveis do sistema como innodb_buffer_pool_size.

Você ganhou experiência prática modificando o arquivo de configuração do MySQL (my.cnf) para fazer alterações permanentes, reiniciando o servidor para aplicá-las e verificando se as novas configurações estão ativas. Finalmente, você foi introduzido a uma técnica básica de análise de desempenho usando o profiler de consultas integrado do MySQL para medir a duração das consultas.

Essas habilidades fundamentais são essenciais para qualquer desenvolvedor ou administrador responsável por manter um banco de dados MySQL saudável e com bom desempenho.