>  Q&A  >  본문

복잡한 교리 쿼리에서 왼쪽 조인을 느리게 하는 가능한 솔루션

<p>저는 상당히 복잡한 데이터 세트를 가져온 다음 내보내기 관리자 클래스에 의해 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는 NULL이 아닙니다');</pre> <p>몇 가지 언급할 사항(시도했거나 도움이 될 것이라고 생각한 것): </p>
P粉517475670P粉517475670413일 전669

모든 응답(2)나는 대답할 것이다

  • P粉208286791

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

    당신은 많은 캠프에 참여하고 있습니다. 그래서 속도가 느려지는 거죠

    으아악

    회원 수가 많을수록 쿼리 속도가 느려집니다. 전체 쿼리에 대해서는 모르지만 멤버십 테이블에서 쿼리를 시작하거나 두 번째 쿼리를 수행할 수 있습니다.

    회신하다
    0
  • P粉178894235

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

    완료되면 LEFT JOIN时,ON需要说明表是如何关联的。 WHERE 子句通常有 IS NULLIS NOT NULL는 오른쪽 행을 제외할지 포함할지를 나타냅니다.

    LEFT JOININNER JOIN 的速度基本相同。但我需要查看索引 (SHOW CREATE TABLE) 和 SELECT 다른 문제가 있는지 확인하기 위한 SQL입니다.

    더보기

    교체

    으아악

    그리고

    으아악

    회신하다
    0
  • 취소회신하다