Наиболее эффективный способ сериализации запроса PonyORM или списка объектов

#python #serialization #fastapi #pydantic #ponyorm

#python #сериализация #fastapi #pydantic #ponyorm

Вопрос:

У меня есть микросервис FastAPI, и я использую Pony в качестве ORM для подключения к PostgreSQL, и в настоящее время я использую Pydantic для сериализации объектов и списков объектов для отправки пользователю.

Но недавно я обнаружил, что способ сериализации списков в FastAPI и Pydantic не очень эффективен. Способ, которым FastAPI обрабатывает сериализацию списков, заключается в итерации и сериализации каждого объекта, и я понимаю, почему они выбрали это, но при использовании PonyORM это требует слишком много времени (я не знаю почему).

Теперь я ищу идеи, как ускорить сериализацию данных (и особенно запросов). Под сериализацией запросов я подразумеваю, например, получение 5 записей из базы данных и их сериализацию без создания из них списка и его итерации. Я знаю, что мне нужно, наконец, что-то где-то повторить, но повторение списков не кажется хорошим решением. Я также пробовал to_dict() метод, реализованный в Pony, но это мало что дало.

Примечание: я не ищу решения для кэша, я хочу знать, есть ли какое-либо низкоуровневое решение для такой проблемы. На данный момент я не знаю, задаю ли я правильный вопрос!

Комментарии:

1. Что вы подразумеваете под «при использовании PonyORM требуется много времени»? Является ли PonyORM сам по себе быстрее?

2. Я имел в виду, что по сравнению с использованием SQLAlchemy в качестве ORM, я думаю, это как-то связано с тем, как pony извлекает данные из БД. Я отредактирую этот вопрос с дополнительной информацией.