Size: a a a

Laravel Framework Russian Community

2020 December 09

Н

Николай in Laravel Framework Russian Community
alexandr sys
а что за селект? скинь SQL
select count(*) as aggregate from geo_cities where country_id = 1 and exists (select * from geo_translations where geo_cities.id = geo_translations.city_id and geo_translations.lang = 'ru' and name like 'Р°%' and vk_type = 'geo_cities')
источник

AP

Alexander Pekh in Laravel Framework Russian Community
Артем
Переслано от Артем
\Auth::user() попробуй
источник

А

Артем in Laravel Framework Russian Community
Alexander Pekh
\Auth::user() попробуй
делал оно логиться и разлогиниться сразу
источник

А

Артём in Laravel Framework Russian Community
Николай
select count(*) as aggregate from geo_cities where country_id = 1 and exists (select * from geo_translations where geo_cities.id = geo_translations.city_id and geo_translations.lang = 'ru' and name like 'Р°%' and vk_type = 'geo_cities')
explain смотри
источник

as

alexandr sys in Laravel Framework Russian Community
Николай
select count(*) as aggregate from geo_cities where country_id = 1 and exists (select * from geo_translations where geo_cities.id = geo_translations.city_id and geo_translations.lang = 'ru' and name like 'Р°%' and vk_type = 'geo_cities')
добавь limit записей 100 и глянь explain, возможно без индексов очень долго отрабатывает
источник

Н

Николай in Laravel Framework Russian Community
alexandr sys
добавь limit записей 100 и глянь explain, возможно без индексов очень долго отрабатывает
City::where('country_id', $country->id)
           ->whereHas('translation', function ($q) {
               $q->translateByAppLocale()->where('name', 'like', request()->get('q') . '%');
           })
           ->with(['translation' => function ($q) {
               $q->translateByAppLocale()->where('name', 'like', request()->get('q') . '%');
           }])->paginate(30)
источник

А

Артём in Laravel Framework Russian Community
Николай
City::where('country_id', $country->id)
           ->whereHas('translation', function ($q) {
               $q->translateByAppLocale()->where('name', 'like', request()->get('q') . '%');
           })
           ->with(['translation' => function ($q) {
               $q->translateByAppLocale()->where('name', 'like', request()->get('q') . '%');
           }])->paginate(30)
Это не explain😁
источник

Н

Николай in Laravel Framework Russian Community
Это я понял, просто где тут лимит поставить?
источник

as

alexandr sys in Laravel Framework Russian Community
напрямую в mysql запусти селект и там лимит добавь, просто если запрос у тебя подвиснет, то и explain ничего не покажет
источник

as

alexandr sys in Laravel Framework Russian Community
да и зачем 2 $q->translateByAppLocale()->where('name', 'like', request()->get('q') . '%'); ? хватит одного в whereHas
источник

Н

Николай in Laravel Framework Russian Community
alexandr sys
да и зачем 2 $q->translateByAppLocale()->where('name', 'like', request()->get('q') . '%'); ? хватит одного в whereHas
SQL-запрос успешно выполнен.
источник

as

alexandr sys in Laravel Framework Russian Community
а что explain говорит?
источник

Н

Николай in Laravel Framework Russian Community
источник

Н

Николай in Laravel Framework Russian Community
alexandr sys
да и зачем 2 $q->translateByAppLocale()->where('name', 'like', request()->get('q') . '%'); ? хватит одного в whereHas
без with ленивая загрузка и много запросов летит в бд
источник

as

alexandr sys in Laravel Framework Russian Community
не, зачем with я понял) просто подзапроса хватит в whereHas(), а with уже только связанные данные выгрузит
источник

AB

Alex Berezhkovsky in Laravel Framework Russian Community
alexandr sys
не, зачем with я понял) просто подзапроса хватит в whereHas(), а with уже только связанные данные выгрузит
точно?
источник

Н

Николай in Laravel Framework Russian Community
alexandr sys
не, зачем with я понял) просто подзапроса хватит в whereHas(), а with уже только связанные данные выгрузит
Да тупанул) Исправил
источник

as

alexandr sys in Laravel Framework Russian Community
попробуй выполнить, может в этом и был косяк, и мускул не подвесит)
источник

Н

Николай in Laravel Framework Russian Community
alexandr sys
попробуй выполнить, может в этом и был косяк, и мускул не подвесит)
Не помогло. Так же висит этот запрос
источник

Н

Николай in Laravel Framework Russian Community
alexandr sys
попробуй выполнить, может в этом и был косяк, и мускул не подвесит)
без whereHas все работает нормально
источник