Что лучше в асинхронном приложении: одно соединение с БД или нет?
Всем привет. Я проводил некоторые эксперименты с asyncio и aiosqlite и заметил довольно предсказуемую ситуацию: в одной корутине выполняется метод например на вставку и после выполнения и до метода commit управление передается другой корутне где вызывается по каким-то причинам rollback(). Собственно та запись которая должна была вставиться не вставилась. И у меня возникла мысль, что в асинхронном приложении два варианта : либо юзать пул соединений используя асинхронный драйвер БД, либо создавать новое соединение на какую-либо очередь обращений. Так ли это? Хочется получить какую-то определенность
Психанул и снес свои ответы козлам, не отмечающим…
В нормальной БД по умолчанию всегда вызывается rollback, если commit не вызван явно (или до него не дошло из-за ошибки) и не включен режим auto-commit (может отсутствовать в БД, но эмулироваться библиотеками). SQLite — нормальная БД.