@kirill-93

Laravel разница where?

В чем разница между
#
->where(function($query) {
                        $query->where('url', 'like', '%facebook.com%');
                        $query->orwhere('url', 'like', '%twitter.com%');
                        $query->orWhere('url', 'like', '%instagram.com%');
                    })

и
->where('url', 'like', '%facebook.com%')
                    ->orwhere('url', 'like', '%twitter.com%')
                    ->orWhere('url', 'like', '%instagram.com%')

Второй вариант исполняется очень долго
  • Вопрос задан
  • 148 просмотров
Решения вопроса 1
wielski
@wielski
✔ Совет: Вам помогли? Отметьте ответы решением.
Первый вариант создает подзапрос, таким образом группируя запросы.
Второй вариант не должен работать долго. Убедитесь, что проставили правильные индексы.

Так же советую использовать Debugbar: https://github.com/barryvdh/laravel-debugbar
Отслеживайте медленные запросы, а после выполняйте запрос с приставкой EXPLAIN. Mysql сам объяснит почему запрос медленный (не используются индексы, создается временная таблица, и т.д.)
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы