我group_concat
在查询中添加了一个并杀死了性能。在我添加它之前和之后的解释计划是相同的,所以我对如何优化它感到困惑。
这是查询的简化版本:
SELECT @curRow := @curRow + 1 AS row_number,
docID,
docTypeID,
CASE WHEN COUNT(1) > 1
THEN group_concat( makeID )
-- THEN 'multiple makes found'
ELSE MIN(makeID)
END AS makeID,
MIN(desc) AS desc
FROM simplified_mysql_table,
(SELECT @curRow := 0) r
GROUP BY docID, docTypeID,
CASE WHEN docTypeID = 1
THEN 0
ELSE row_number
END;
注意 中的CASE
声明SELECT
。group_concat
杀戮的表现。如果我评论该行并仅输出“找到多个结果”,它将执行得非常快。知道是什么原因造成的吗?