#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 извлекает данные из БД. Я отредактирую этот вопрос с дополнительной информацией.