ホームページ  >  に質問  >  本文

複雑なドクトリンクエリにおける左結合を遅くするための可能な解決策

<p>かなり複雑なデータセットを取得する symfony リポジトリ メソッドがあり、エクスポート マネージャー クラスによって CSV ファイルに配置されます。エクスポート ジョブを処理するコード全体を記載するつもりはありませんが、クエリが遅くなるポイントを正確に特定することができたので、私の質問はコード自体ではなく、クエリを高速化するための他の代替手段についてです。 したがって、取得されるデータは、複数の「メンバーシップ」と「ユーザー」を含む「サイト」データです。したがって、問題は、クエリがユーザー情報をサイトに接続しようとすると、実行が遅くなるということです。次のようになります:</p> <pre class="brush:php;toolbar:false;">$qb->leftJoin('s.memberships', 'ex_sm', 'WITH', 'ex_sm.revokedAt IS NULL'); $qb->leftJoin('ex_sm.user', 'ex_jappr', 'WITH', 'ex_sm.approverJobReactiveWeight IS NOT NULL');</pre> <p>いくつか言及すべきこと (私が試したこと、または役に立つかもしれないと思ったこと): </p>
P粉517475670P粉517475670413日前667

全員に返信(2)返信します

  • P粉208286791

    P粉2082867912023-09-03 17:01:17

    あなたはたくさんのキャンプに参加しました。それが速度が低下している理由です

    リーリー

    メンバーシップの数が増えると、クエリの速度が遅くなります。完全なクエリについてはわかりませんが、メンバーシップ テーブルからクエリを開始することも、2 番目のクエリを実行することもできます。

    返事
    0
  • P粉178894235

    P粉1788942352023-09-03 10:43:15

    LEFT JOIN を実行する場合、ON はテーブルがどのように関連しているかを説明する必要があります。 WHERE 句には通常、右側の行を除外するか含めるかを示す IS NULL または IS NOT NULL が含まれます。

    LEFT JOININNER JOIN の速度は基本的に同じです。ただし、インデックスの SQL (SHOW CREATE TABLE) と SELECT を調べて、他に問題があるかどうかを確認する必要があります。 ######もっと###### ###交換する### リーリー ###そして### リーリー

    返事
    0
  • キャンセル返事