なぜWherehasは非常に遅いですか?
こんにちは
私にあなたのコードの一部を見せてください
上のコードは非常に遅いですが、SQL出力は
時間応答25秒!
`
私は
私にあなたのコードの一部を見せてください
case 'first_name':
$eml = ($rule == 'or')
? $eml->orWhereHas('user', function ($q) use ($condition) {
$q->where(
'first_name','ilike','%bra%'
)->withTrashed();
})
: $eml->whereHas('user', function ($q) use ($condition) {
$q->where(
'first_name','ilike','%bra%'
)->withTrashed();
});
break;
`上のコードは非常に遅いですが、SQL出力は
EXISTS
を使用しています.時間応答25秒!
`
(...)
LEFT OUTER JOIN "work_regimes"
ON "wra1"."work_regime_id" = "work_regimes"."id"
WHERE EXISTS
(
SELECT *
FROM "users"
WHERE "emls"."user_id" = "users"."id"
AND "first_name"::text ilike ?)
AND "users"."is_activated" = ?
AND "emls"."deleted_at" IS NULL
ORDER BY "id" ASC
応答時間は非常に非常に速い0.3秒です!私は
When I replace
でby
に置き換えました、しかし、それは働いていません!Reference
この問題について(なぜWherehasは非常に遅いですか?), 我々は、より多くの情報をここで見つけました https://dev.to/mostafalaravel/why-wherehas-is-very-slow-2mmbテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol