gpt4 book ai didi

mysql - 如何加速复杂的ORDER BY?

转载 作者:行者123 更新时间:2023-11-29 15:13:51 26 4
gpt4 key购买 nike

我有 4 个表:translationKeystranslationSuggestionstranslationCommentstranslationSuggestionActivities。每个都包含一个created列。

我的查询(简化)如下所示:

SELECT 
a.created,
c.created,
s.created
FROM translationKeys k
JOIN translationSuggestions s ON k.id = s.translationKeyId
LEFT JOIN translationComments c ON c.translationSuggestionId = s.id
LEFT JOIN translationSuggestionActivities a ON a.translationSuggestionId = s.id

WHERE k.gameId = 11

ORDER BY a.created DESC, c.created DESC, s.created DESC
LIMIT 20

我的执行计划如下所示(对困惑的索引名称表示歉意): Execution Plan

执行时间约为 400 毫秒。如果我删除 ORDER BY 创建的 DESC ,执行时间会立即降至 10 毫秒。我知道这是因为排序发生在临时表中。

我尝试为每个表设置索引,包括 created 列和所有引用的列,但没有区别。

我的问题是:是否有可能提高这种排序的性能,还是我试图完成一些不可能的事情?

最佳答案

由于 ORDER BY 列是由不同表和列合并而成,因此您无法使用任何索引来修复此问题。

但是您只是选择 20 行。为什么不在代码中简单地对结果进行排序呢?

关于mysql - 如何加速复杂的ORDER BY?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59856242/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com