Способ PUT OneToMany отношения? (Апи-платформа)

На самом деле оба подхода хороши, и оба могут извлечь выгоду из индекса в столбце time_stamp в вашей базе данных, если он у вас есть. Я попытаюсь дать им советы:

  1. Несколько запросов не такая уж плохая идея, ваши данные выглядят довольно статичными, и вы можете запускать 20 select avg(value) from data where time_stamp between date_from and date_to -подобных запросов в 20 разных чтобы ускорить общую работу. Вы избавитесь от необходимости передавать много данных клиенту из базы данных. Недостатком было бы то, что вам нужно включить дополнительное условие where, чтобы исключить строки с ненужными значениями external_id. Это усложняет запрос и может немного замедлить обработку, если есть много этих значений.
  2. Здесь вы можете отсортировать данные на сервере по индексу time_stamp перед отправкой, а затем просто проверить, соответствует ли ваш текущий элемент из нового диапазона данных (из-за сортировки вы будете уверены, что более поздние элементы будут с более поздних дат). Это уменьшит внутренний цикл до оператора if. Я не уверен, что это узкое место здесь. Возможно, вы хотели бы посмотреть на потоки результатов, а не ждать, пока их все выберет.
1
задан enima 20 January 2019 в 13:54
поделиться