Como utilizo o comando Optimize Table no MySQL?

De Wiki
Revisão de 20h48min de 13 de setembro de 2016 por Ayslan (discussão | contribs)

(dif) ← Edição anterior | Revisão atual (dif) | Versão posterior → (dif)
Ir para: navegação, pesquisa

O comando “OPTIMIZE TABLE” do MySQL é utilizado para desfragmentar tabelas. Com a desfragmentação, as tabelas e os índices são reorganizados, diminuindo o tamanho do espaço em disco ocupado por esses dados e aumentando a eficiência de I/O quando a tabela é acessada, consequentemente melhorando o desempenho do banco de dados. O OPTIMIZE TABLE deve ser utilizado nas ocasiões em que foi realizado “UPDATE”, “INSERT” ou “DELETE” substancial na tabela.

Nas tabelas “MyISAM”, o OPTIMIZE TABLE repara tabelas que têm linhas apagadas ou divididas, reorganiza os índices de páginas e atualiza as estatísticas da tabela. Nas tabelas InnoDB, o OPTIMIZE TABLE é referenciado pelo ALTER TABLE, que recria a tabela e atualiza as estatísticas do índice, liberando espaço não utilizado no índice clusterizado.

Há duas formas de realizar a desfragmentação de tabelas: através da linha de comando e através do phpMyAdmin:

IMPORTANTE: Durante a execução do procedimento a seguir, o acesso à(s) tabela(s) afetada(s) ficará indisponível.

Linha de comando do MySQL

1. Verifique a existência de tabelas fragmentadas através do comando:
mysql> SHOW TABLE STATUS;
NOTA: Nas tabelas MyISAM, quanto maior o valor do “Data_free” maiores os indícios de fragmentação. Nas tabelas InnoDB, estes valores podem ser estáticos e não indicar fragmentação.


2. Selecione a base de dados que contém a tabela a ser desfragmentada:
mysql> use NomeDaBase;


3. Por fim, execute o comando:
mysql> OPTIMIZE TABLE NomeDaTabela;

phpMyAdmin

1. Na tela principal do phpMyAdmin, clique sobre a base de dados que contém a(s) tabela(s) que deve(m) ser desfragmentada(s);
OpT 01.png


2. Selecione a(s) tabelas(s);
OpT 002.png


3. Na caixa de seleção, selecione “Otimizar tabela”;
OpT 03.png


4. Por fim, clique em “Executar”.
OpT 4.png