Прежде всего, Presto создан не для транзакционных, а для аналитических целей, обычно с большим объемом данных. В случае транзакций MySql / Postgres, подключенный с помощью Django ORM / Models, является лучшим выбором.
- Нет, это не так. Согласно здесь и здесь вы должны получить все данные, кэшировать их в бэкэнде и запросить их. Запрос / фильтр должен быть очень конкретным, чтобы получить небольшой объем данных, представляющих интерес. Например, рассмотрите возможность добавления фильтра даты и ограничения его несколькими днями / месяцами. Таким образом вы запрещаете своим пользователям выполнять тяжелые запросы.
- Вы можете использовать одно и то же соединение, если вам не нужны другие конфигурации, например, уровень изоляции транзакции
- Что касается ошибки БД, просто верните Ответ с кодом 500 - Внутреннее сообщение об ошибке. Также убедитесь, что в журнале stacktrace
- Django есть инфраструктура кэширования из коробки
- Celery - хороший выбор, обычно он идет с Redis или RabbitMQ. Эти службы развертываются отдельно от основного Django приложения
- Django docs , которое должно стать хорошим началом