SELECT DISTINCT
viewA.TRID,
viewA.hits,
viewA.department,
viewA.admin,
viewA.publisher,
viewA.employee,
viewA.logincount,
viewA.registrationdate,
viewA.firstlogin,
viewA.lastlogin,
viewA.`month`,
viewA.`year`,
viewA.businesscategory,
viewA.mail,
viewA.givenname,
viewA.sn,
viewA.departmentnumber,
viewA.sa_title,
viewA.title,
viewA.supemail,
viewA.regionname
FROM
viewA
LEFT JOIN viewB ON viewA.TRID = viewB.TRID
WHERE viewB.TRID IS NULL
약 10K 및 5K 개의 레코드가있는 두 개의보기가 있습니다. 그들은 각각 아주 빨리 들어갑니다. ViewA에서 ViewB에없는 모든 레코드를 가져 오려고하면 작동하지만 매우 느립니다. 기본 TRID 필드는 모두 동일한 문자 집합이며 모두 varchar (10)로 설정되고 인덱싱 된 테이블은 모두 Innodb입니다. 지금 쿼리가 16 초 걸립니다. 내가 할 수있는 건 뭐니?두 개의보기를 결합하면 왼쪽이 느립니까?
왼쪽 결합을 제거하고 결합을 시도 했습니까? – DevelopmentIsMyPassion
@AshReva - 매우 빠르지 만 반환 값은 없습니다. – blankip
평균적으로 얼마나 많은 레코드가 반환됩니까? 두 번째보기 뒤의 쿼리는 어떤 모양입니까? –