pergunta simples, mas está me incomodando há um tempo agora ....
o que é "overhead" no MySQL e devo me preocupar?
clicar em "otimizar tabela" corrige isso de verdade?
pergunta simples, mas está me incomodando há um tempo agora ....
o que é "overhead" no MySQL e devo me preocupar?
clicar em "otimizar tabela" corrige isso de verdade?
Respostas:
Parece que a sobrecarga é um espaço em disco temporário usado pelo banco de dados para executar algumas das consultas; portanto, você deve se preocupar apenas se isso ficar muito alto.
Você pode comparar 'Otimizando a tabela' com a desfragmentação do seu disco rígido.
Eu cito:
Todo banco de dados, com o tempo, exigirá alguma forma de manutenção para mantê-lo em um nível de desempenho ideal . Limpar linhas excluídas, redefinir, compactar, gerenciar caminhos de índice, desfragmentar etc. é o que é conhecido como OPTIMIZAÇÃO no mysql e outros termos em outros bancos de dados. Por exemplo, o IBM DB2 / 400 o chama REORGANIZE PHYSICAL FILE MEMBER.
É como trocar o óleo do carro ou fazer um ajuste. Você pode pensar que realmente não precisa, mas ao fazê-lo, seu carro funciona muito melhor, você obtém uma melhor quilometragem, etc. Um carro que acumula muita quilometragem exige ajustes com mais frequência. Um banco de dados que utiliza muito exige o mesmo. Se você estiver executando muitas operações UPDATE e / ou DELETE, e especialmente se suas tabelas tiverem colunas de comprimento variável (VARCHAR, TEXT, etc), será necessário manter o controle.
Se você está falando sobre o que phpMyAdmin
chamaoverhead
, é o tamanho real de um arquivo de dados da tabela em relação ao tamanho ideal do mesmo arquivo de dados (como se tivesse acabado de ser restaurado a partir do backup).
Por motivos de desempenho, MySQL
não compacta os arquivos de dados após excluir ou atualizar linhas.
Isso overhead
é ruim para a varredura de tabela, ou seja, quando sua consulta precisar executar todos os valores da tabela, será necessário procurar mais espaço vazio.
Você pode se livrar da overhead
execução OPTIMIZE TABLE
que compactará sua tabela e índices.
A sobrecarga é Data_free de uma tabela, ou seja, o número de bytes alocados, mas não utilizados. Podemos encontrá-lo pelo comando SQL SHOW TABLE STATUS . É o espaço livre no tamanho alocado para sua tabela.
Otimizar tabela pode ser muito problemático. Por exemplo, se a tabela for muito usada em um site.
http://dev.mysql.com/doc/refman/5.1/en/optimize-table.html
Após excluir grande parte de uma tabela MyISAM ou ARCHIVE ou fazer muitas alterações em uma tabela MyISAM ou ARCHIVE com linhas de comprimento variável (tabelas que possuem colunas VARCHAR, VARBINARY, BLOB ou TEXT). As linhas excluídas são mantidas em uma lista vinculada e as operações INSERT subsequentes reutilizam as posições antigas da linha. <
Acredito que confirmei esse comportamento. E certamente seria realmente muito útil.