gpt4 book ai didi

mysql: 使用 sort_union(sourceClass,destinationClass);在解释计划中

转载 作者:行者123 更新时间:2023-11-29 14:26:45 25 4
gpt4 key购买 nike

最近,当我遇到一些慢查询时,我在 EXPLAIN 计划中看到了“Using sort_union(sourceClass,destinationClass)”这句话。

当我使用相同的查询与每个索引的 FORCE INDEX 分别运行 EXPLAIN 时,我发现由于数据分布,它几乎正在执行全表扫描。

我理解这是为了提高性能,并且这个决定仅由查询优化器做出。

在我的查询中,键和查询是这样的

sourceClass:      KEY (`sourceClass`,`sourceId`,`kind`)
destinationClass: KEY (`destinationClass`,`destinationId`,`kind`),

query:
WHERE (sourceClass='channel' && sourceId=1016) || (destinationClass='channel'
&& destinationId=1016)

我想知道优化器什么时候会选择这个,这种查找结果有什么缺点吗?

最佳答案

您对查询优化器的期望是尽力而为的方法,因此它不一定会找到最佳解决方案,而是在特定时间段内可以找到的最佳解决方案。如果您想改善这一点,您需要创建一个索引来改进查询或更改数据库的设计,查询优化器会看到这一点,并将选择它作为更好的查询计划。

关于mysql: 使用 sort_union(sourceClass,destinationClass);在解释计划中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10800862/

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