Sqlite vakuum

Sqlite vakuum
Vakuumuttalelsen hjelper til med å rense det primære datasettet ved å overføre postene sine til en forbigående datafil og deretter gjenoppbygge hele databasen igjen fra duplikatet. Dette fjerner effektivt databasekatalogstrukturen ved å fjerne tomme sider og justere databasetabeller for å være kontinuerlig. I tabeller uten en definert heltall primærnøkkel, kan vakuumuttalelsen endre rad -ID for elementer. Derfor påvirkes bare den primære databasen av vakuumuttalelsen. Det ville ikke være mulig å støvsuge datafiler som er koblet. Når det er en aktiv operasjon, kan vakuumuttalelsen floppe. Vakuum kan brukes til å endre forskjellige database bestemte installasjonsalternativer fordi det restrukturerer datafilene fra standard.

I denne artikkelen vil vi se på vakuuminstruksjonen mens vi bruker Ubuntu 20.04 System. La oss komme i gang med lanseringen av Ubuntus konsollapplikasjon. Bruk snarveien “Ctrl+Alt+T” for å åpne den raskt. Prøv å bruke den treffende "oppdatering" nøkkelordinstruksjonen på skallet som vist. Det kan be deg om et innlogget brukerpassord.

Hvis du vil, kan du også oppgradere det. Ellers åpner SQLite -databasen i skallet. For åpningen av SQLite-databasen, prøv ut en-ordinstruksjonen “Sqlite3” på dette skallet. Databasekonsollen vil bli generert som vist. Nå må du lage tabeller og sette inn poster i dem.

Så vi har opprettet en ny tabell som heter “Test” med to kolonner ved hjelp av Create Table Instruction (i.e., Id og sal.) Begge kolonnene er av heltallstype. Etter opprettelsen av denne tabellen "Test", må vi sette inn noen poster i den ved hjelp av et innlegg i instruksjon etterfulgt av tabellnavnet, kolonnenavn der vi ønsker å sette verdier, og nøkkelordet "verdier" fulgte av postene som skal settes inn. Totalt 5 poster for ID- og SAL -kolonnen med tabelltest er lagt til vellykket. Select -instruksjonen har vist totalt 5 poster på SQLite Shell -skjermen.

Lag tabelltest (id int ikke null, sal int ikke null);
Sett inn i test (id, SAL) verdier (1, 25600), (2, 34000), (3, 56000), (4, 44000), (5, 66000);
Velg * fra test;

Etter dette må vi opprette ett bord til uten feil. For dette vil vi igjen bruke Create Table Instruction med en ny tabell som heter Data og kolonnene som er nevnt i parentesene sammen med deres typer. To kolonner -ID og navn er opprettet for denne tabellen. Etter dette har innsatsen i instruksjonen blitt brukt igjen for å sette inn noen poster i ID- og navnekolonnene i en tabell i denne ny genererte tabellen “Data”.

Etter å ha satt inn totalt 5 poster i denne nye tabellen "Data", har vi prøvd Select Instruction for å se dataene som er satt inn av brukeren. Utgangen fra SELECT -instruksjonen har vist oss de nye 5 postene for denne tabellen.

Lag tabelldata (id int ikke null, navnetekst ikke null);
Sett inn data (ID, navn) verdier (1, "EMA"), (2, "Emerald"), (3, "Bryan"),
(4, "Leonardo"), (5, "Decaprio");
Velg * fra data;

Mens vi legger til disse postene til sine respektive tabeller, har vi opplevd mange problemer og feil. Disse problemene og feilene er blitt presentert på det vedlagte bildet for å gi deg beskjed om at vakuumkommandoen vil bli brukt til å frigjøre plassen som disse feilene og problemene er tatt og ikke er fjernet ennå. Selv om vi har fjernet tabelldataene i det viste bildet, vil ikke prosessen med å slippe frigjøre plassen som er okkupert av disse feilene og tabellene som er opprettet.

De .Tabellinstruksjon har blitt brukt til å vise listen over tabeller. Totalt er det funnet 2 tabeller så langt. La oss bruke drop -instruksjonen for å fjerne både tabellene fra vår database, test og data. Etter å ha slettet begge disse tabellene, har vi ikke funnet noen tabeller i tabelllisten som vises av ".tabeller ”instruksjon. Selv om vi har fjernet disse tabellene fra systemet vårt, har minnet de okkuperte ikke blitt utgitt ennå. For å frigjøre den plassen, må vi utføre vakuuminstruksjonen på skallet vårt etter det.

.bord
Drop Table Test;
Slipp tabelldata;

For å utføre vakuumet manuelt på SQLite -databasen, må du bruke den enkle vakuuminstruksjonen ved skallet. Bildet nedenfor viser demonstrasjonen. Det vil frigjøre plassen som er okkupert av de ufullstendige prosessene og slipp -kommandoer.

Vakuum;

La oss anta, du har opprettet en ny database. Du har også lagt til noen tabeller til det, og nå vil du støvsuge det fullt ut. Deretter kan du også utføre den manuelle måten å bruke vakuuminstruksjonen. For eksempel har vi opprettet en ny database som heter "Test" ved hjelp av SQLite3 -instruksjonen. Databasen ble opprettet med hell. Etter det prøvde vi å lage noen tabeller i den og prøvde å sette inn noen poster i tabellene også (jeg.e., TEST.) Til slutt har vi prøvd vakuuminstruksjonen for å rydde opp i databasen "Test" manuelt.

En annen måte å bruke vakuuminstruksjonen for å rydde opp i den spesifikke databasen er å prøve ut vakuuminstruksjonen på Linux -skallet. Vi har prøvd Sqlite3 -instruksjonen med den nyopplagte databasenavnet “Test” etterfulgt av Auto Vacuum -typen vi vil utføre. Verdien av “Pragma Auto Vacuum” kan settes av brukerne selv. Du kan ganske enkelt bruke vakuumnøkkelordet med testnavnet på skallet også.

SQLITE3 DATABASE_NAME "PAGMA AUTO_VACUUM"
SQLITE3 DATABASE_NAME "Vacuum"

Vi kan angi verdien av Pragma Auto_Vacuum-variabelen til full for fullverdig bilopprydding, til inkrementell for å støtte opprydding i trinn, og ingen for å unngå et automatisk vakuum.

Konklusjon:

Dette var ved bruk av vakuuminstruksjon av en Linux Shell og SQLite -database for å rydde opp i de allerede eksisterende databasene og tabellene ved å lagre dem til å duplisere databaser og sette dem tilbake etter at vakuumet er utført.