Поскольку sqlite является транзакционным, он полагается на fsync, чтобы гарантировать завершение определенного набора операторов при фиксации транзакции. Скорость и реализация fsync варьируются от платформы к платформе.
Таким образом, пакетируя несколько операторов в транзакции, вы можете получить значительное увеличение скорости, так как несколько блоков данных будут записаны до вызова fsync.
Старая статья sqlite здесь иллюстрирует эту разницу между выполнением нескольких INSERT внутри и вне транзакций.
Однако, если вы пишете приложение, требующее одновременного доступа к данным, обратите внимание, что когда sqlite запускает транзакцию записи, все операции чтения (операторы select) будут заблокированы. Возможно, вы захотите изучить использование кэша в памяти для извлечения данных во время транзакции записи.
С учетом сказанного также возможно, что схема кэширования sqlite справится с этим для вас.