【发布时间】:2018-09-10 22:30:04
【问题描述】:
我想优化以下 MySQL 查询,它从 2 个表中挑选数据,其中 authorchecklist 表有详细记录,而 selectedrevlist 表用于审阅者的评论。
我想从scoreSubmit = 1的selectedrevlist中获取这些记录
SELECT *
FROM `authorchecklist` acl
WHERE acl.manuscriptStatus = 'Awaiting Reviewer Assignment'
AND acl.submitStatus = '1'
AND
( SELECT COUNT( 1 )
FROM selectedrevlist srl
WHERE srl.OrderNumber = acl.OrderNumber
AND srl.editorType = 'Editor'
AND srl.editorID = '10'
AND srl.scoreSubmit = '1'
) = 1
上述查询工作正常,但加载记录大约需要 20 秒。
【问题讨论】:
-
能否在两个表中添加表结构和一些插入查询?
-
请在代码问题中给出minimal reproducible example--剪切&粘贴&可运行代码;具有期望和实际输出(包括逐字错误消息)的示例输入(作为初始化代码);标签和版本;明确的规范和解释。对于包含 DBMS 和 DDL 的 SQL,其中包括约束、索引和表格初始化。对于包括 EXPLAIN 结果和统计信息的 SQL 性能。 (约束、索引和计划至关重要。)在考虑发布之前请先研究一下。这包括 SQL 优化/性能的基础——直接导致索引、计划、统计和 SARGability。 How to Ask
标签: mysql sql performance join