请帮我优化Mysql查询
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 :(得分:0)
Abi,请不要使用评论为您的问题添加信息。请改用编辑问题按钮。您编辑问题的信息越多,答案就越清晰。
您的数据库中似乎没有任何索引,除了数据库创建的ID和日期的默认索引。
开始尝试,只需为查询中的WHERE后面的所有列添加索引。
对不起,我不能告诉你到底要做什么,我对数据库做得很好,但我不是它的专家。我在你的情况下做的是玩添加不同的索引和阅读手册。