Для проектов с умеренной нагрузкой (до сотен запросов в секунду) локальная SQLite на NVMe-накопителе часто работает быстрее Postgres просто за счет отсутствия оверхеда на сериализацию данных по TCP-сокету.
По умолчанию SQLite работает в режиме отката журнала (delete/rollback), что блокирует параллельное чтение во время записи. Это решается одной строкой:
PRAGMA journal_mode = WAL; PRAGMA busy_timeout = 5000; PRAGMA synchronous = NORMAL; PRAGMA foreign_keys = ON;
В режиме WAL читатели не блокируют писателей, а писатели не блокируют читателей. Бэкап снимается на лету без остановки сервиса командой VACUUM INTO '/backups/db_backup.sqlite';.