Я недавно немного боролся с SQLite и параллелизмом. Это своего рода сука, но это выполнимо.
Проблема в том, что когда вы выполняете запись в базу данных SQLite, вы блокируете все это (по сравнению с блокировкой строк, которую поддерживают другие решения). Если вы отправляете тонны записей из нескольких мест / потоков, вы будете сталкиваться со стенами, когда появляются ошибки «база данных заблокирована».
Я думаю, что можно увеличить время ожидания для запросов SQLite, чтобы эти проблемы стали ... немного меньшими. Тем не менее, они все еще остаются проблемами.
Другая проблема, с которой вы можете столкнуться при использовании SQLite, - это использование FOR UPDATE. Это используется, когда вам нужно извлечь некоторые строки, вычислить данные с учетом данных, а затем выпустить обновление без других запросов, считывающих эти строки за это время. Он не поддерживает такую конструкцию. Вы можете обойти это, но вы должны явно заблокировать всю базу данных, пока вы делаете это обновление (вы увидите, что кто-то обращается к этому здесь ).
Одновременное чтение в порядке, поэтому, возможно, оно будет работать для вас.
Я полагаю, что TL; DR всего этого состоит в том, что это зависит от того, сколько одновременных попаданий вы ожидаете получить в базе данных. Если вы ожидаете многого, возможно, вам стоит поискать более надежное решение для баз данных, такое как postgresql .
Я ни в коем случае не эксперт по базам данных, но я надеюсь, что это укажет вам правильное направление.