Ir para conteúdo

Recommended Posts

Olá pessoal bom dia! 

 

Preciso de uma ajuda com um detalhe no banco de dados no caso é postgres v.9.4 , explicando a situação estou fazendo uma manutenção de dados de certos logs que gero e tenho exemplo uma tabela que é envios.envio_contato_log_status ela tinha mais 220GB só nela eu limpei ficou de boa (agora esta zerado e nem lista abaixo), só que ao rodar o código que mede o tamanho das tabelas vejo que tenho uma de 45GB informados como consigo apagar esse cara envios.envio_contato_log_status_pkey (chave primaria da tabela acima referida envios.envio_contato_log_status) não entendi o banco ele armazena dados nas chaves primarias, indexadores, etc...  Minha duvida se tem algo que permite eu excluir esses dados, no caso sabemos que essa tabela não é mais usada.

Mais queria manter a estrutura do campos mesmo que vazia por enquanto e eliminar apenas esses 45GB que não tenho ideia de como remover esse kara.

 

image.png.22b5d8b00a18b62dd76fd7f28c3f5bd0.png

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pessoal desculpa ter aberto o chamado mais acho que ja descobri acabei de rodar um TRUNCATE TABLE e resolveu agora não tenho os 45GB, ate sumiu quando rodo para ver o tamanho de todo o meu banco, pelo o que entendi que o TRUNCATE elimina dados de transações que eram os 45GB e mantem toda a estrutura da tabela intacta(indexadores, FK, PK).  

Então resumindo para apagar todos os dados de uma tabela de forma limpa e rapida sem deixar vestígios use Truncate; 

Para poder selecionar dados com where use Delete, isto é, caso não queira apagar tudo, pois o truncate não aceita parametros adicionais (WHERE, LIMIT, etc)

 

image.png.b94063c702db3d88eb668ebed3688a29.png

 

Deixo os links que me ajudaram abaixo: 

 https://gustavomaiaaguiar.wordpress.com/2010/07/21/truncate-versus-delete-uma-explicacao-mais-detalhada/

http://www.oraclehome.com.br/2013/08/14/diferencas-entre-truncate-table-drop-table-ou-delete-from/

image.png

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

  • Conteúdo Similar

    • Por _marlon307
      Tenho uma tabela em meu banco de dados em que as colunas usuário e e-mail são do tipo unio. Como faço para verificar as duas colunas ao mesmo tempo e retorna um valor se encontrar um registro iguai.
    • Por leonardo021970
      Tem alguma maneira de capturar todas as urls do site?
      Testei pelo google mas ele retorna apenas alguns resultados pelo jeito que testei
    • Por _marlon307
      Estou fazendo um sistema simples de cadastro de usuário e preciso que o usuário e e-mail sejam únicos. Mas já configurei a minha tabela para que esses campos seja único. O problema e fazer a checagem para que não retorne erros, e sim redirecionar para pagina de cadastro.
       
      Código:
      <?php require_once 'config/connect.php'; $usermail = mysqli_real_escape_string($link, $_POST['email']); $username = mysqli_real_escape_string($link, $_POST['usuario']); $userpsw = mysqli_real_escape_string($link, $_POST['senha']); $sql = "SELECT usuario, email FROM `tb_usuarios` WHERE `usuario` = '$username', `email` = '$usermail'"; mysqli_query($link, $sql) or die(mysqli_error($link)); $linhas = mysqli_affected_rows($link); if($linhas > 0) { header("Location:cadastro"); } else { $sql = "INSERT INTO tb_usuarios (usuario, senha, email) VALUES ('$username','$userpsw','$usermail')"; mysqli_query($link,$sql) or die(mysqli_error($link)); $linhas = mysqli_affected_rows($link); if($linhas > 0) { header("Location:login"); } } ?>  
    • Por eduardom
      Olá.
       
      Tentarei exemplificar o problema.
       
      Tenho uma tabela com duas colunas e seus respectivos conteúdos:
      VALOR (int), DATA (datetime)
      1, 2018-12-10 20:50:00
      5, 2018-12-13 12:00:00
      4, 2018-12-13 13:00:00
      3, 2018-12-13 17:00:00
      2, 2018-12-15 06:00:00
      9, 2018-12-15 08:00:00
       
      Consulto as informações, por exemplo:
       
      SELECT * FROM TABELA WHERE DATA BETWEEN '2018-12-13 00:00:00' AND '2018-12-13 23:59:59'
       
      Está me trazendo somente os valores 4 e 5, o 3 ele não trás, porém todos estão dentro do período.
      Com isso, estou perdendo registros nas consultas.
      Buscando somente o valor 3 direto, (SELECT * FROM TABELA WHERE VALOR = 3), ele trás a informação normalmente.
      Adicionei e removi os índices, tentei otimizar a tabela, porém nada resolve.
      Não sei se envolve o tamanho da tabela, pois há 2.782.219 registros na mesma.
       
      Estrutura da tabela: InnoDB
      Formatação da tabela: utf8_general_ci
       
      Se alguém tiver uma luz...
    • Por nosredna
      Olá amigos, vocês poderiam me ajudar?
       
      Eu tenho a input abaixo em PHP, quando eu acabar de digitar algo eu desejo que ela selecione o texto digitado automaticamente. É possível? Como eu faria?
      Exemplo abaixo:

       
      Agradeço a ajuda. Valeuuuu.
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.