5
respostas

Como apagar tabela temporária no HD

Olá! O professor ensinou sobre tabelas temporárias em memória ou hd, mas não mostrou como limpar/apagar as tabelas que foram para o hd. Eu tenho 6 tabelas temporárias no hd, como posso apagá-las?

Além disso, ele também mostrou como recuperar uma base importando os dados, mas eu tentei fazer o contrário e não consegui, o que posso ter feito errado? Ao tentar exportar apenas a estrutura das tabelas são criadas no arquivo exportado (create table), eu gostaria de saber como exportar os registros para ficarem semelhantes aos arquivos da aula de recuperação da base? Obrigado.

Garanta sua matrícula hoje e ganhe + 2 meses grátis

Continue sua jornada tech com ainda mais tempo para aprender e evoluir

Quero aproveitar agora
5 respostas

Olá Danilo, tudo bem? Não entendi muito bem sua primeira dúvida Danilo, poderia explicar melhor? Porque as tabelas temporárias ficam em memoria durante a operação e depois se perdem se o servidor for reiniciado, onde elas podem ficar é em um diretório temporário, no caso do Windows no diretório Temp, só que isso é um tanto quando complexo de identificar. Agora as tabelas que estão no disco e que você consegue ver tem o número 2, 3 ou mais a frente do nome da tabela? Se sim, então elas não são tabelas temporárias e sim tabelas reais isso acontece porque o modelo InnoDB salva em arquivos e após atingir um determinado tamanho é criado um novo arquivo com um número 2, ou 3, em sequência numérica para armazenar mais dados.

Sobre a exportação do banco de dados, ou no caso o Backup do banco, eu não entendi muito bem, você seguiu os passos do instrutor nesse vídeo onde ele faz o processo pelo Workbench? E os arquivos não contém os comandos INSERTs, foi isso? Ou foi seguindo os passos desse vídeo onde ele faz o processo pelo terminal? Em ambos os casos os meus arquivos foram criados com os comandos INSERTspara inserir todos os dados que a tabela continha.

Fico aguardando retorno!

Olá Jonilson, tudo bem? Obrigado por responder e desculpe se não fui muito claro, eu costumo escrever minhas dúvidas quase dando a resposta que eu mesmo não conseguia enxergar, mas vou tentar explicar novamente.

Sobre a primeira dúvida ainda não consegui entender, pois o professor mostra que existem duas áreas, uma onde as tabelas temporárias ficam e a outra onde elas ficarão caso o espaço para tabelas temporárias exceda seu limite. Quando rodei o script mostrou 6 tabelas e eu queria saber como apagar essas tabelas.

A segunda dúvida é sobre uma aula que o professor mostrou como importar uma base de dados utilizando somente o recurso "import" do workbench, eu tentei fazer o processo contrário para gerar os mesmos arquivos com os mesmos conteúdos, mas não conseguir, pois os dados não estavam sendo exportados, principalmente os que tinham INSERTs o que me deixou sem saber o que fazer.

Vídeos mais tarde percebi que o professor mostra como fazer essa exportação (backup) usando linha de comando e o workbench, eu que estava tentando testar uma coisa antes de aprendê-la.

Obrigado pela ajuda, se ainda não fui claro por favor escreva que irei tentar reformular minha questão novamente.

Ainda não entendi bem sua primeira dúvida, sei o que está tentando fazer, mas você poderia indicar o link da aula pra eu verificar e entender corretamente e ai ti indicar uma solução?

Sobre sua segunda dúvida, você poderia me falar se foi o procedimento que o instrutor fez nesse vídeo? E qual foi o problema? Você tentou realizar apenas o backup completo (full)?

Olá Janilson, tudo bem?

Obrigado pelo retorno. Neste vídeo o professor falou sobre as variáveis de ambiente e mostrou que existem alguns comandos que podemos usar para fazer algumas verificações no servidor.

Este comando é usado para verificar se alguma tabela temporária que deveria ter sido criada em memória, foi criada em HD. Se o valor=0 o tamanho da variável de memória está satisfatório, caso valor>0 significa que as tabelas estão sendo criadas em HD, deixando as consultas mais lentas.

No meu caso valor=6 porque eu havia instalado o MySQL antes de entrar na alura e estava fazendo um curso de SQL onde fiz várias consultas. Dias depois entrei na alura e elas continuam lá, indicando que tais tabelas não são apagadas ao encerrar a sessão, ou seja, não são temporárias.

SHOW GLOBAL STATUS LIKE 'Created_tmp_disk_tables';

Já este comando é utilizado para verificar o tamanho da variável de ambiente que foi definida no arquivo my.ini, a variável tmp_table_size.

SHOW GLOBAL VARIABLES LIKE 'tmp_table_size';

Depois com este comando ele mostrou que podemos aumentar a quantidade de memória para que nossas queries criem tabelas em memória e não em disco.

SET GLOBAL tmp_table_size = valor_inteiro_em_bytes;

O que ele não mostrou nem comentou a respeito, fruto da minha dúvida, foi como podemos apagar essas tabelas que foram criadas em disco. Também não falou se elas são apagadas do hd ao encerrar a sessão ou não.

Sobre a importação e backup

Está tudo certo e já consegui resolver, como havia dito, eu estava tentando fazer algo que ele nem havia explicando ainda e após a aula sobre backup eu pude entender e consegui fazer os backups.

O problema foi que ele mostrou como importar uma base e nessa mesma aula eu estava testando fazer o efeito contrário, exportar uma base (backup). Após a aula entendi todas as diferenças e como proceder em cada uma delas.

Agora só preciso saber como apagar tais tabelas que foram criadas em disco e não em memória. Se você souber agradeço se compartilhar. Caso eu descubra antes aviso aqui também.

Obrigado pela ajuda.

Entendi Danilo, então, mesmo depois de executar o comando:

SET GLOBAL tmp_table_size = valor_maior_do_que_o_que_esta_configurado;

As tabelas continuam em disco é isso? Você tentou parar o serviço do MySQL e inicializar novamente, e depois verificar se o valor dessa variável foi realmente alterado e também se as tabelas temporárias em disco ainda existem.

E fala pra gente aqui!