Делаю веб-приложение на Flask. Для взаимодействия с БД PostgreSQL использую SQLAlchemy.
Объём обрабатываемых данных приблизился к реальному. Полезли проблемы с производительностью. Так как знаю SQLAlchemy ещё скорее слабовато, запросы и их обработку рубил с плеча.
Прошу подсказать правильное направление.
Есть такой кусок кода:
# 2. Запрос занятий за период.
qr_classes = MscClass.query.join(MscDateRange, MscEvent).filter(
MscDateRange.start_time >= query_start_time, MscDateRange.start_time <= query_end_time).order_by(
MscDateRange.start_time)
for event in events:
# 2.1. Занятия для мероприятия.
query_result_classes = qr_classes.filter(MscEvent.id == event.id).all()
for classes in query_result_classes:
print(classes)
Итогом работы подобного подхода становится примерно 5 тысяч запросов. Подобное совершенно не приемлемо. Подскажите пожалуйста правильный порядок действий в подобной ситуации.