-1
원하는 결과를 생성하는 쿼리가 매우 천천히 실행됩니다. (! 600초 같은)MySQL의 인덱싱 종속 하위 쿼리
SELECT *
FROM clients
WHERE type = 'gold'
AND state IN('TX', 'WV', 'NV', 'IL')
AND phone not in
(
select phone
from clients
group by phone
having count(*) > 1
)
AND cell not in
(
select cell
from clients
group by cell
having count(*) > 1
)
SELECT 나에게 부여 EXPLAIN : 내가 여기에 무엇을해야하는지 고민하고
id, select_type, table, Possible_keys, key, key_len, ref, rows, Extra
1, PRIMARY, clients, ALL, ndxCLients_state,IGA_Count, , , , 128070, Using where
2, DEPENDENT SUBQUERY, clients, ALL, , , , , 128070, Using temporary; Using filesort
3, DEPENDENT SUBQUERY, clients, index, , idx_Cell, 258, , 3, Using index
. 나는 그것이 내가 전화 분야에 대한 색인이 필요하다는 것을 말해 주려한다고 생각한다. mysql workbench를 사용하여 전화 필드를 인덱싱했습니다. 내가 여기서 무엇을 놓치고 있니? 사용 LEFT이 가입
** 테이블 및 인덱스 정의를 표시해야합니다. ** 느린 쿼리를 진단하려면 설명이나 의역이 아닌 전체 테이블 및 인덱스 정의가 필요합니다. 테이블이 잘못 정의 된 것일 수 있습니다. 색인이 올바르게 작성되지 않았을 수 있습니다. 어쩌면 그 칼럼에 당신이 생각한 색인이 없을 수도 있습니다. 테이블과 인덱스 정의를 보지 않고는 말할 수 없습니다. –
감사합니다. Andy. 나는 그것을 두려워했다. 큰 못생긴 제작 데이터베이스를 배우면서 아프다는 트림과 컴팩트 버전이 필요합니다. – JVMX
은 https://www.sqlfiddle.com을 사용하고 작은 데이터 세트로 클라이언트 테이블 만 넣습니다. – amaster