Я везде читал, что создание транзакций - это решение для медленной записи SQLite, но переписать ваш код и обернуть все записи SQLite в транзакции может быть долгим и мучительным.
Я нашел гораздо более простой, безопасныйи очень эффективный метод: я включаю (по умолчанию отключено) оптимизацию SQLite 3.7.0: Write-Ahead-Log (WAL) .В документации говорится, что она работает во всех системах Unix (т.е. Linux и OSX) и Windows.
Как?Просто выполните следующие команды после инициализации соединения SQLite:
PRAGMA journal_mode = WAL
PRAGMA synchronous = NORMAL
Мой код теперь работает на ~ 600% быстрее: мой набор тестов теперь выполняется за 38 секунд вместо 4 минут:)