【发布时间】:2017-07-23 01:25:05
【问题描述】:
我有这个在大约 5 秒内运行并返回大约 500 条记录的简单查询,但是为什么我尝试在复合语句中使用它 MySQL 只是挂起
SELECT DISTINCT ARTIST_ID FROM WORK
GROUP BY ARTIST_ID
HAVING AVG(WORK_MILLIS_VIEWED) > 10
然而,下面的查询永远不会终止。根据进程列表,它只是创建了一个临时表,尽管它的运行时间应该只比子查询稍长一些,因为艺术家表非常小。
SELECT ARTIST_NAME FROM ARTIST
WHERE ARTIST_ID IN (SELECT DISTINCT ARTIST_ID
FROM WORK GROUP BY ARTIST_ID
HAVING AVG(WORK_MILLIS_VIEWED) > 10)
我犯了一个愚蠢的错误吗?数据库似乎没有做任何其他事情。
【问题讨论】:
标签: mysql sql-update subquery query-optimization