и все ссылки каждого меню в массив links без дополнительных циклов и т.д? или одним не получится, как в 2 запроса сделать знаю
не видно структуры твоих таблиц, но скорее всего можно.
Eager Loading + Resources
Надо не через eloquent
в каких-то моментах хочется иметь большую нативность, нет необходимости создания кучи моделей и как уже выше написали(3) без него быстрее. В узких местах он первым идёт на спил в счёт оптимизации (спилить быстро, профит существенный) )
конкретно для этой сущности - данный подход может показаться избыточным, но так как у меня перевод будет еще для других сущностей, то нет
Всегда можно использовать кеширование данных. К тому же - добавить обновление через очереди (хотя бы синхронно). Первый раз может быть медленный, но позже - всё себе вполне оптимизируемо. Да и всегда можно написать своё решение для такого. Создайте как пакет для переводов со своим ServiceProvider’ом и пользуйтесь им, добавляя нужный трейт к модели, к примеру. Или используя нужный сервис для перевода.
Своё решение - куда оптимальней (возможно). Из-за того, что у Вас есть уже минимум зависимостей и нет дополнительно установленных пакетов. Можете даже с raw работать, в таком случае, или с моделью с помощью паттерна Strategy. Тут у Вас будет нужная гибкость и нужная скорость. Плюс возможность глянуть на перформанс.
А Вы то уже пробовали то кеширование и очереди?
да, мне не нравится такой подход, сделать абы как, закинуть все в очередь, пусть она там обработается, закешируется и быстро все работает(так себе)
Не просто так же создано было Eloquent, DoctrineORM 🤷🏻♂️
не аргумент
Кэш нужен только тогда, когда у тебя будет минимальный miss cache. Иначе кэш будет ВРЕДЕН. По моему ты смотришь на ситуацию «у меня нагрузка 3 индейца в месяц». В этом случае можешь даже запросы в цикле делать. Но мне казалось мы про другое говорим.
Откуда мнение, что кэширование можно использовать всегда как приятное дополнение? При высоком кэш миссе ты сначала пойдёшь в кэш (это не бесплатно), а потом снова в базу. И если прикинуть экономию, то может оказаться, что ты получил замедление.
Я к тому, что то что предложили выше, не пытаться решить проблему, а просто убежать от нее(типо в любой непонятной ситуации кешируем и все)
Обсуждают сегодня