2017-11-01 5 views
-1

최적화가 존재하지

SELECT 
DISTINCT t0.ID, 
t0.CODE_MEANING, 
t0.CODE_SCHEME_DESIGNATOR, 
t0.CODE_SCHEME_VERSION, 
t0.CODE_VALUE, 
t0.MODALITY, 
t0.NAME, 
t0.OBSOLETE, 
t0.FACILITY_KEY 
FROM PROTOCOL t0 
WHERE EXISTS (
SELECT 1 
       FROM CT_STUDY t2, STUDY t1 
       WHERE t1.STUDY_DATE <= '2017-09-19 01:23:25.86' 
       AND t2.ID = t1.ID 
    AND t1.DTYPE = 'CTStudy' 
    AND t0.ID = t2.PROTOCOL_KEY 
) 
AND NOT EXISTS (
SELECT 1 
       FROM CT_STUDY t5, STUDY t4 
       WHERE t5.PROTOCOL_KEY = t0.ID 
    AND t4.STUDY_DATE > '2017-09-19 01:23:25.86' 
    AND t5.ID = t4.ID 
    AND t4.DTYPE = 'CTStudy' 
) 
AND t0.FACILITY_KEY = 1; 
+0

색인은 어떻습니까? EXPLAIN의 출력을 게시 할 수 있습니까? – Harry

+0

아래의 설명 플랜을 찾으십시오. – Abi

+0

| 이드 | select_type | 테이블 | 유형 | possible_keys | 열쇠 | key_len | 심판 | 행 | 추가 – Abi

답변

0

아비, 귀하의 질문에 정보를 추가 할 주석을 사용하지 마십시오 MySQL의 쿼리를 최적화하는 데 도움이 바랍니다 존재한다. 대신 질문 편집 버튼을 사용하십시오. 질문에 대한 더 많은 정보를 입력할수록 답이 명확 해집니다.

데이터베이스에서 만든 ID의 기본값과 날짜를 제외하고 데이터베이스에 인덱스가없는 것처럼 보입니다.

검색어에 WHERE가 오는 모든 열에 대해 색인을 추가하기 만하면됩니다.

나는 무엇을 해야할지 정확히 말할 수 없다는 것을 유감스럽게 생각합니다. 데이터베이스는 꽤 잘하지만, 전문가는 아닙니다. 귀하의 경우 내가하는 일은 다른 색인을 추가하고 매뉴얼을 읽는 것입니다.

관련 문제