如何优化此查询并替换 MAX 函数?

Posted

技术标签:

【中文标题】如何优化此查询并替换 MAX 函数?【英文标题】:How can I optimize this query and replace the MAX function? 【发布时间】:2014-07-09 02:15:52 【问题描述】:
SELECT MAX(f_orderInteractionID)                
FROM  tOrders O              
INNER JOIN tOrderInteractions  OI    ON OI.fk_orderID = O.f_orderID                
GROUP BY OI.fk_orderID

有没有办法替换 max 函数,因为在实际执行计划中它使用索引扫描,我更喜欢使用索引搜索。如何改进此查询

【问题讨论】:

请编辑问题以包含所有列的表别名。 我不会对扫描而不是搜索感到惊讶,因为没有 WHERE 子句,但这取决于连接列的基数。您对 JOIN 或 GROUP BY 子句中的列有任何索引吗? 【参考方案1】:

为此,请重试

SELECT f_orderInteractionID
FROM  tOrders O              
INNER JOIN tOrderInteractions  OI    ON OI.fk_orderID = O.f_orderID
ORDER BY f_orderInteractionID DESC
LIMIT 1

【讨论】:

以上是关于如何优化此查询并替换 MAX 函数?的主要内容,如果未能解决你的问题,请参考以下文章

如何优化此查询并使其执行得更快? [关闭]

有关优化此多层(具有多层子查询)SQL 查询的提示

Laravel - 如何优化 MIN - MAX - orderBy 查询?

如何在where子句中使用max优化Oracle中的查询

Mysql优化方案

mysql中min和max查询优化