Este artigo é um artigo espelhado de tradução automática, por favor clique aqui para ir para o artigo original.

Vista: 3517|Resposta: 1

[Gorjetas] [Transferir] para MySQL Advanced: comando de otimização de tabela

[Copiar link]
Publicado em 17/06/2023 11:40:34 | | |
Ao usar mysql, você pode perceber que, embora uma tabela apague muitos dados, os arquivos de dados e arquivos de índice da tabela são estranhamente pequenos. Isso porque o mysql deixa muitos buracos de dados ao excluir dados (especialmente Texto e BLOB), o que ocupa o espaço dos dados originais, então o tamanho do arquivo não muda. Esses furos podem ser reutilizados no futuro, quando os dados forem inseridos, e, claro, podem permanecer ali. Esse buraco não só aumenta o custo de armazenamento, mas também reduz a eficiência de varredura da tabela devido à fragmentação dos dados.

Cenários de Uso:Se você deletou uma grande parte da tabela, ou se fez muitas alterações em uma tabela com linhas de comprimento variável (uma com colunas VARCHAR, BLOB ou TEXT), deve usar OPTIMIZE TABLE. Registros deletados são mantidos na lista vinculada, e operações subsequentes de INSERT reutilizam a localização antiga do registro. Você pode usar o OPTIMIZE TABLE para reaproveitar o espaço não utilizado e organizar fragmentos de arquivos de dados. [Quando uma grande quantidade de dados é excluída da sua biblioteca, você pode perceber que o tamanho do arquivo de dados não diminuiu. Isso se deve à fragmentação deixada no arquivo de dados após a operação de exclusão.


Na maioria dos cenários, você não precisa rodar o OPTIMIZE TABLE. Mesmo que você faça muitas atualizações em linhas de comprimento variável, não precisa rodá-las com frequência, uma vez por semana ou uma vez por mês, apenas para tabelas específicas.

OPTIMIZE TABLE funciona apenas para tabelas MyISAM, BDB e InnoDB.

Para tabelas BDB, a OPTIMIZE TABLE está atualmente mapeada para a ANALYZE TABLE. Para tabelas InnoDB, a OPTIMIZE TABLE é mapeada para a ALTER TABLE, que reconstrói a tabela. Operações de reconstrução, atualizam estatísticas de índice e liberam espaço não utilizado em índices agrupados.

Nota: O MySQL bloqueia a tabela durante a execução da OPTIMIZE TABLE.

Para myisam, você pode usar diretamente a tabela de otimização table.name,Quando for o motor InnoDB, ele reporta "Table does not support optimize, doing recreate + analyze" em vez disso", e em circunstâncias normais, se você converter do myisam para o innodb, usará alter table table.name engine='innodb' para converter, e também pode usar isso para otimização.Portanto, quando é o motor InnoDB, podemos usar alter table table.name engine='innodb' em vez de otimizar para otimização

Para visualizar os efeitos antes e depois, você pode usar o comando mostrar status da tabela, como mostrar status da tabela a partir de [banco de dados] como '[table_name]'; A data_free no resultado de retorno é o espaço de armazenamento ocupado pelo vazio.

O script shell que implementa o MySQL para revisão temporária de tabela de verificação e otimização de tabela é o seguinte:

Original:

O login do hiperlink está visível.
O login do hiperlink está visível.




Anterior:Use a ferramenta de infiltração SQLMAP para testes de injeção SQL
Próximo:Tutorial de instalação do Consul em um ambiente de teste do Windows
 Senhorio| Publicado em 06/07/2023 18:54:17 |
--Lista


-- Arrume a mesa


-- Otimizar a tabela


Disclaimer:
Todo software, material de programação ou artigos publicados pela Code Farmer Network são apenas para fins de aprendizado e pesquisa; O conteúdo acima não deve ser usado para fins comerciais ou ilegais, caso contrário, os usuários terão todas as consequências. As informações deste site vêm da Internet, e disputas de direitos autorais não têm nada a ver com este site. Você deve deletar completamente o conteúdo acima do seu computador em até 24 horas após o download. Se você gosta do programa, por favor, apoie um software genuíno, compre o registro e obtenha serviços genuínos melhores. Se houver qualquer infração, por favor, entre em contato conosco por e-mail.

Mail To:help@itsvse.com