giovedì 25 ottobre 2018

Ridurre il peso di un file sqlite

Tags

Il database sqlite è molto utile per sviluppare app in python o anche per smartphone.
Con la sua sintassi simile all'sql, può consentire di effettuare query anche complesse tra varie tabelle, come un vero e proprio database relazionale.

Quello che però voglio spiegarvi oggi in questo breve post, è come ridurre il peso di un file sqlite.
Rispetto ai classici database tipo mysql infatti, in sql lite le dimensioni contano.
O per meglio dire, ci si fa più caso, dato che ci si trova a spostare fisicamente file su telefoni o altri dispositivi, cosa che di solito con altri tipi di database non capita molto spesso di fare.

Dopo aver fatto una delete di una tabella sqlite infatti, mi sono accorto che il peso del file del database non era calato, e questo era male dato che avevo svuotato la tabella proprio per risparmiare sullo spazio, visto che il buono e fido app inventor / thunkable, non consente di creare app troppo pesanti, e di sicuro neanche di caricare a progetto file che pesano più di cento mega.

Vediamo dunque di capire come superare questa difficoltà.


Come ridurre il peso di un file sqlite


Dopo tutti questi preamboli e premesse, in realtà poi il comando da lanciare per ottimizzare un database sqlite è uno solo.
Ecco cosa bisogna fare in soldoni: prima selezionare il database da ridurre, e poi digitare il comando sql:

VACUUM

Nonostante il nome un po' vodoo, questo comando non fa altro che riallocare lo spazio nel file del database sqlite, che dopo una delete potrebbe aver lasciato qualche buco e quindi non essersi ridotto di dimensioni.
Ho detto potrebbe, perchè se per caso il database è settato con l'impostazione di autovacuum, tutto quanto appena scritto non sarà più necessario.
Basterà infatti impostare la cosa utilizzando la seguente sintassi:

PRAGMA schema.auto_vacuum;

Ed ecco che il database sqlite sarà ora ottimizzato in automatico dopo ogni delete o cambio di dati.

Piaciuto l'articolo? Lascia un commento!

EmoticonEmoticon