쿼리가 40 분 이상 응답하는 데 너무 오래 걸립니다. 나는 또한 NOT으로 시도했다MySQL 쿼리가 너무 오래 응답하여 응답하지 않습니다.
`SELECT c.consumer_id FROM consumer c
WHERE c.active_flag = 'Y'
AND (c.frequency = 'Q')
AND c.consumer_id NOT IN(
SELECT consumer_id
FROM (SELECT s.consumer_id
FROM transactions s
WHERE (s.cycle='2016-Q-2') and s.active_flag = 'Y' AND s.status <> 'Door Locked')
AS subquery)`
이 존재하고 좌/가입 둘 다에 대한 위의 쿼리 같은 시간 NULL 버전입니다.
consumer
테이블이
- consumer_id의 VARCHAR (12)
- active_flag의 VARCHAR (6)
- 주파수 VARCHAR (2)와
- 130000 행 WHERE 절
- 전체 행 160000
- 고유 인덱스가 소비자 ID
- active_flag에 덱스
transaction
테이블이
- consumer_id의 VARCHAR (12)
- active_flag의 VARCHAR (6)
- 상태 VARCHAR (20)
- 사이클 VARCHAR (13)
- 108000 where 절이있는 행
- 총 행 270000 consumer_id 상태 및주기
서버 설정
-16GB RAM -8 코어 인텔 (R) 제온 (R) CPU 2.20GHz @ E5-4640 v2를 -MySQL 5.6.35
을에는 반환에게 SQL QUERY EXPLAIN
난이 도움이되기를 바랍니다을 설명한다. 미리 감사드립니다.
UPDATE 1
소비자와 거래는이 일대 관계 모든주기 반복 할 것이다 그래서 consumer_id.
JOIN 쿼리도 추가 할 수 있습니까? – marijnz0r