Bonjour Ami Jeune, c'est M. Manhattan;
Ami jeune, tu tentes - comme bon nombre d'insouciant dans ton espèce - d'utiliser SQLite. Mais tu trouves que cela n'est vraiment pas normal que celui avance comme une mule corse en plein cagniard ?.
Ahh! petite insolent, c'est parce que tu ne connais pas la méthode Dick Rivers.

La méthode Dick Rivers est simple: "Pour toute discussion, tu diras quand l'ouvrir et quand la fermer !"

Tu as ce genre de requète :
CREATE TABLE test (
    id integer primary key,
    text varchar(255)
);
INSERT INTO toto (id, text) VALUES (NULL, 'Mon Index 0');
INSERT INTO toto (id, text) VALUES (NULL, 'Mon Index 1');
INSERT INTO toto (id, text) VALUES (NULL, 'Mon Index 2');
[...]
INSERT INTO toto (id, text) VALUES (NULL, 'Mon Index 9998');
INSERT INTO toto (id, text) VALUES (NULL, 'Mon Index 9999');
INSERT INTO toto (id, text) VALUES (NULL, 'Mon Index 10000')
Après insertion, tu auras perdu - au moins - hmmm .... 5 bonnes minutes.

Mais alors, comment faire ?!

Tu me m'écoutes pas jeune ! : La méthode Dick Rivers je t'ai dis !

Rajoutes - en début et fin de fichier SQL - des "BEGIN;" et autre "COMMIT;" saltimbanque.
BEGIN;
    CREATE ...
    INSERT ....
COMMIT;
En terme de performance, tu passeras de 5 min à .... 2 secondes (testé avec 10.000 insertions)