Сериализатор Django очень медленный, занимает 8-10 секунд

  1. Я пытаюсь разработать API приборной панели, которая требует получения данных из нескольких таблиц для каждого продукта, допустим, у меня есть 5 продуктов, мне нужно запросить 5-6 других таблиц, чтобы получить данные для каждой таблицы.

  2. Эти 5 таблиц очень большие таблицы, в будущем они могут достигнуть 1-2M записей (они добавляются каждую минуту)

    .
  3. Я использовал prefetch related для обратной связи - я согласен, что время запроса сильно сокращается, но сериализатор работает очень медленно, независимо от количества полей.

  4. Для дашборда мне нужно выбрать последнюю запись, связанную с сущностями, которые я отображаю в дашборде.

Моя модель

Класс Product(): имя Slug

Class ProductViewedByUser()// нужен последний пользователь, который просматривал продукт Пользователи Time

По аналогии с ProductViewedByUser у меня есть 5-6 таблиц, из которых мне нужно получить последнюю запись.

Я попробовал Prefetch Related время запроса составляет 115 мс для 3 продуктов и почти 500000 кэшированных строк.

Когда я передаю это в сериализатор, неважно, какие поля там есть, даже с одним CharField-ом, время увеличивается до 3 секунд

Когда у меня несколько полей, время увеличивается до 10 секунд

Я ожидаю, что сериализация будет быстрой, насколько это возможно.

Есть ли смысл создавать еще одну таблицу для хранения последних записей относительно продукта

Вернуться на верх