и множество Payment к ней. Мне нужно собирать статистику по платежам к каждому аккаунту. Например, получать сумму всех успешных платежей за текущий месяц. При этом нужно также получать список аккаунтов и проделывать такие подсчёта для каждого элемента. Если делать это всё через связи, то количество запросов растёт кратно. Запрос на 250 аккаунтов растягивается на 2-3 секунды из-за того, что по каждой записи добавляется по несколько дополнительных запросов. Но если прописать это всё через сырые SQL-запросы при помощи global scope в boot модели, то запросы становятся вполне подъемными. 1000 записей извлекается за +-300мс - как и должно. Но это какой-то костыль. Можно ли то что на скрине переписать через связи без потерь скорости?
статистика это отчеты? Если да, и цель только отобразить данные, то, возможно, проще сырыми запросами сделать? Почему именно связи нужны?
показал бы лучше как ты через связи что сделал. я пока не вижу у тебя тут ничего кроме одного join и суммы в select. и зачем-то это в глобальный скоуп засунуто
ты здесь просто прикрутил всё это к КАЖДОМУ запросу модели
Обсуждают сегодня