子查询分组后的内部联接优化

所以我一直在努力优化具有group by语句的子查询的内部联接。下面的查询大约需要1.8到2秒钟的时间来获取。我想对其进行优化,我认为子查询将是一个关键。

我不确定内部联接中具有group by的子查询是否可以使用索引联接其他表。我相信子查询中的列(在这种情况下为A2,C2)在内部联接中不能拥有自己的索引。正确吗?

所以,我的问题是如何优化此查询语句,并有可能在内部联接中的A2,C2上设置索引。

SELECT A,C,X.S
FROM tb_g X 
INNER JOIN ( 
    SELECT A AS A2,MAX(C) AS C2
    FROM tb_g
    GROUP BY A 
) Y 
ON X.A = Y.A2 AND X.C = Y.C2;

子查询分组后的内部联接优化

子查询分组后的内部联接优化

f2003365964y 回答:子查询分组后的内部联接优化

A,C上的复合索引应尽可能优化此查询:

ALTER TABLE tb_g ADD INDEX (A,C);

此索引允许完全使用索引来计算子查询,然后可以通过对原始表的最佳获取来完成与中间表的联接。

本文链接:https://www.f2er.com/3162984.html

大家都在问