Сергей
дебаг панель говорит что долго?
Ну я удаляю код и на 10 сек быстрее апи приходит)
Сергей
дебаг панель говорит что долго?
именно первые 3 строки тормозят жестко(
Anton
$current_task = Lesson::with('section.level')->where('id', $this->id)->get(); получить сразу
Anton
или даже first
Anton
Да через ssh
ну так поднять в докере ssh и стучаться так же к нему деплоером
Alexander
херасе какие вещи можно мутить))
Anton
https://github.com/barryvdh/laravel-debugbar
Anton
а как его видеть если у меня апи только)
тогда поставь в мускуле дебаг медленных запросов
Anton
ну и попробуй мой вариант, с помощью ленивой загрузки.
Сергей
гугл
это именно в мускуле или в фреймворке?
Anton
именно в мускуле
Anton
$next_task = $current_lesson->lessons() ->where('sort', '>', $current_task->sort) ->first(); уверен что не здесь?
Сергей
$next_task = $current_lesson->lessons() ->where('sort', '>', $current_task->sort) ->first(); уверен что не здесь?
ну я удалял по конструкции кода и когда дошел до тех строк, то там по 3-4 секунды сразу уходило)
Сергей
Сергей
а их 150 в моем тесте
Anton
замечательно
Сергей
замечательно
ну есть такое)
Anton
я бы задумался над тем что что то не так если бы общее количество запросов было более 30
Anton
а у тебя сколько?
Сергей
не правильно наверно выразился) у меня выводится 150 сущностей и каждая сущность выполняет этот код для определения id слудующей за ней сущности)
Сергей
последовательность не по id просто должна быть
Anton
а 150 сущностей одним запросом выбираешь?
Сергей
Да
Сергей
а 150 сущностей одним запросом выбираешь?
return TaskResourceStatus::collection(Lesson::all()->sortBy('sort'));
Anton
т.е. у тебя проблема получения для каждой сущности ее следующей
Сергей
т.е. у тебя проблема получения для каждой сущности ее следующей
я вынес логику получения слудующего id в класс отдельный и каждый раз вызываю при формировании json через Resource
Сергей
т.е. у тебя проблема получения для каждой сущности ее следующей
я вот думаю если вынести эту логику в модель, то может быстрее будет?)
Anton
я вот думаю если вынести эту логику в модель, то может быстрее будет?)
дело же в sql, я хз что у тебя за логика выбора следующего
Anton
и почему ты так много сразу получаешь записей
Сергей
дело же в sql, я хз что у тебя за логика выбора следующего
у меня берется поле сорт текущего и из всего списка берется просто первый который больше настоящего по значению)
Anton
ну как будто бы да
Alexander
Попробую вмешаться: а может быть можно подтянуть необходимые сущности через appends? У меня это довольно быстро работает
Сергей
Попробую вмешаться: а может быть можно подтянуть необходимые сущности через appends? У меня это довольно быстро работает
Да здесь больше трабла в том что это вызывается каждый раз при формировании объекта)
Anton
но кажется что это не поможет
Сергей
так ты не делай запрос там, вынеси
у меня запрос вынесен в другой класс) я ейчас только понял что 150 раз он делает запрос в базу с 150 сущностями и проходится заного
Сергей
Да вот тоже думаю)
Anton
все?
Anton
а если у него 10 миллионов записей. ему надо 150 выбрать, и для каждого из 150 связанный по какому то критерию
Anton
видимо он расписание состовляет какое то по дням. Я бы вообще тогда вводил новую сущность Day
Anton
StudyDay::with('lessons')->where(['code', '=', 'monday'])->get();
Anton
так я понял что для каждого второго надо учесть значение первого
Сергей
так я понял что для каждого второго надо учесть значение первого
@AntonJ55 это задания уроков и нужно знать номер следующего задания чтобы можно было пропустить задание и перейти к следующему, задания сортируются по полю
Anton
$current_task = Lesson::find($this->id); $this->id это что?
Сергей
Id текущего урока
Сергей
Задания*
Сергей
В общем задания это лессон а уроки это секции там
Сергей
$current_task = Lesson::find($this->id); $this->id это что?
Беру объект просто задания и на основании него беру выше по иерархии то что требуется
Anton
угу
Anton
все напутанно
Сергей
Блин(
Anton
зачем то берет еще кучу всего чтобы взять опять Lesson
Сергей
Это для того что если нет следующего задания, то у меня далее логика чтобы взять первое задание следующего урока
Сергей
Для этого там остальные 2 строки
Anton
давай сам. не понятно
Anton
тебе бы сформулировать сначала нормальный вопрос, и нормально показать код и структуру бд. Сидим и гадаем. увы не телепаты
Anton
$current_task = Lesson::find($this->id); почему current_task, а не currentLesson? если модель Lesson
Сергей
$current_task = Lesson::find($this->id); почему current_task, а не currentLesson? если модель Lesson
Потому что назван не верно класс( тут увы вина не моя)
Anton
в твоем коде не увидел ничего такого что могло бы так сильно замедлить. Есть мнение то ты этот запрос выполняешь сотню раз.
Anton
если так то вот и ответ
Сергей
в твоем коде не увидел ничего такого что могло бы так сильно замедлить. Есть мнение то ты этот запрос выполняешь сотню раз.
Да он выполняется много раз) но как этого избежать если он должен выполняться всегда когда формируется ответ) то есть в каждом ответе добавляется ещё 2 новых свойства)
Anton
я незнаю как устроено твое приложение. не знаю ответа
Anton
думай. )
Сергей
Ладно, я че нить придумаю ещё) спасибо что попробовали помочь и частично помогли)
Anonymous
Ребята, есть кто-то по SleepingOwl тут?
Nikita
Да написал бы уже вопрос. Зачем искать конкретного человека? Или вопрос настолько специфичен?
Anonymous
Допустим есть задача, сделать CRUD + Import. Где именно описывать методы?
ko
Ребят, вопрос не по теме. Есть посты с https://jsonplaceholder.typicode.com/posts , как на чистом js открывать каждый пост в отдельной странице??