Vacuum sqlite

Vacuum sqlite
A declaração a vácuo ajuda a limpar o conjunto de dados primário transferindo seus registros para um arquivo de dados transitórios e depois reconstruindo todo o banco de dados novamente do duplicado. Isso remove efetivamente a estrutura do diretório do banco de dados, removendo páginas vazias e alinhando as tabelas de banco de dados para serem contínuas. Em tabelas sem uma chave primária inteira definida, a declaração de vácuo pode modificar o ID da linha dos itens. Portanto, apenas o banco de dados principal é afetado pela declaração de vácuo. Não seria viável os arquivos de dados aspiradores que foram vinculados. Quando há uma operação ativa, a declaração de vácuo pode fracassar. O vácuo pode ser usado para alterar várias opções de configuração específicas do banco de dados, pois reestrutura os arquivos de dados do padrão.

Neste artigo, daremos uma olhada nas instruções a vácuo enquanto usamos o Ubuntu 20.04 Sistema. Vamos começar com o lançamento do aplicativo de console do Ubuntu. Use o atalho "Ctrl+Alt+T" para abri -lo rapidamente. Tente usar a instrução APT "Update" Palavra -chave no shell, como mostrado. Pode pedir uma senha de usuário conectada.

Se você quiser, você pode atualizá -lo também. Caso contrário, abra o banco de dados SQLite dentro do shell. Para a abertura do banco de dados SQLite, experimente a instrução de uma palavra “SQLITE3” neste shell. O console do banco de dados será gerado como mostrado. Agora, você precisa criar tabelas e inserir registros dentro deles.

Então, estamos criando uma nova tabela chamada "teste" com duas colunas usando a instrução Create Table (i.e., Id e sal.) Ambas as suas colunas são do tipo inteiro. Após a criação desta tabela "teste", teremos que inserir alguns registros nela com a ajuda de uma inserção na instrução seguida pelo nome da tabela, nomes de colunas nos quais queremos colocar valores e a palavra -chave "valores" seguidos pelos registros a serem inseridos. Um total de 5 registros para a coluna ID e SAL do teste de tabela foram adicionados com sucesso. A instrução SELECT foi mostrar um total de 5 registros em nossa tela de shell sqlite.

Criar teste de tabela (id não nulo, sal não nulo);
Inserir no teste (id, sal) valores (1, 25600), (2, 34000), (3, 56000), (4, 44000), (5, 66000);
Selecione * no teste;

Depois disso, precisamos criar mais uma tabela sem falha. Para isso, usaremos novamente a instrução de tabela Create com uma nova tabela chamada dados e as colunas mencionadas dentro dos colchetes junto com seus tipos. Duas colunas ID e nome foram criadas para esta tabela. Depois disso, a inserção na instrução foi usada mais uma vez para inserir alguns registros nas colunas de ID e nome de uma tabela dentro desta tabela recém -gerada “dados”.

Depois de inserir o total de 5 registros nesta nova tabela "dados", tentamos a instrução selecionada para ver os dados que foram inseridos pelo usuário. A saída da instrução SELECT está nos mostrando os novos 5 registros para esta tabela.

Criar dados da tabela (ID int não nulo, nome do nome não nulo);
Insira em dados (id, nome) valores (1, "ema"), (2, "Emerald"), (3, "Bryan"),
(4, "Leonardo"), (5, "Decaprio");
Selecione * FROM DATA;

Ao adicionar esses registros às suas respectivas tabelas, encontramos muitos problemas e erros. Esses problemas e erros foram apresentados na foto em anexo para que você saiba que o comando a vácuo será usado para liberar o espaço que esses erros e problemas foram obtidos e ainda não foram removidos. Embora tenhamos removido os dados da tabela dentro da imagem mostrada, o processo de queda não liberará o espaço ocupado por esses erros e tabelas que foram criados.

O .As instruções das tabelas foram usadas para exibir a lista de tabelas. Um total de 2 tabelas foram encontradas até agora. Vamos usar a instrução Drop para remover as duas tabelas do nosso banco de dados, teste e dados. Depois de excluir essas duas tabelas, não encontramos tabelas dentro da lista de tabela exibida pelo “.Tabelas ”Instrução. Embora tenhamos removido essas tabelas do nosso sistema, a memória que eles ocupavam ainda não foram libertados. Para liberar esse espaço, precisamos realizar as instruções a vácuo em nossa concha depois disso.

.mesas
Teste de tabela de gota;
Soltar dados da tabela;

Para executar manualmente o vácuo no seu banco de dados SQLite, você precisa usar a instrução simples de vácuo no shell. A imagem abaixo está mostrando sua demonstração. Ele liberará o espaço ocupado pelos processos incompletos e comandos soltários.

VÁCUO;

Suponhamos que você criou um novo banco de dados. Além disso, você adicionou algumas tabelas e agora você quer aspirar totalmente. Em seguida, você também pode executar a maneira manual de usar a instrução de vácuo. Por exemplo, criamos um novo banco de dados chamado "teste" usando a instrução SQLITE3. O banco de dados foi criado com sucesso. Depois disso, tentamos criar algumas tabelas e tentamos inserir alguns registros nas tabelas (eu.e., TESTE.) Finalmente, tentamos as instruções a vácuo para limpar o banco de dados "teste" manualmente.

Outra maneira de usar as instruções a vácuo para limpar seu banco de dados específico é experimentar a instrução de vácuo no shell Linux. Tentamos a instrução SQLITE3 com o nome do banco de dados recém -fabricado "teste" seguido pelo tipo de vácuo automático que queremos executar. O valor de "Pragma Auto Vacuum" pode ser definido pelos próprios usuários. Você pode simplesmente usar a palavra -chave a vácuo com o nome do teste no shell também.

SQLITE3 DATABASE_NAME "PRAGMA Auto_vacuum"
banco de dados SQLITE3

Podemos definir o valor da variável Pragma Auto_vacuum como completa para limpeza automática de pleno direito, para incremental para apoiar a limpeza em incrementos, e nenhum para evitar um vácuo automático.

Conclusão:

Isso foi sobre o uso de instruções a vácuo de um banco de dados Linux Shell e SQLite para limpar os bancos de dados e tabelas já existentes, salvando -os para duplicar bancos de dados e colocá -los de volta após o desempenho do vácuo ter sido executado.