Archived post from my old blog (2007–2016), restored from the Wayback Machine. It is published as written at the time, in Italian; tools and versions are likely out of date.
SQLite Insert fulminei
Se vi capita di fare insert di dump in sqlite probabilmente sperimentate una lentezza estenuante
Questo capita perché ogni insert scatena una transazione a sé stante e questo di base causa l’attesa di un giro completo del piatto del disco per finalizzare la transazione.
Per evitare questo comportamento basta aprire il dump (ad esempio un dump di postgres ottenuto con la flag –insert), posizionarsi appena prima del primo insert e dire:
BEGIN TRANSACTION;
….
Dopo tutti gli insert chiudere la transazione con
COMMIT TRANSACTION;
Et voilà, da 60 insert al secondo a svariate migliaia
Thx to the SQLite FAQ
← Archive