gpt4 book ai didi

mysql - 为什么在使用 "merge"等构造时不能使用 "group by"算法创建 MySql View ?

转载 作者:行者123 更新时间:2023-11-30 23:22:22 27 4
gpt4 key购买 nike

在 MySql 中有一个奇怪的规则,它基本上是说如果你想创建一个 View 并且你想在你的 View 中使用诸如 GROUP BY、DISTINCT、UNION 等结构,你不能使用 ALGORITHM = MERGE 创建您的 View !阅读更多 here .

这基本上意味着如果您在 MySql 中创建一个 View 并且您的 View 中有类似 GROUP BY 的东西,如果您运行如下查询:

select * from MyView
where foo = 2

然后 MySql 将从 MyView 中读取所有行并将其放入临时表中,然后它将 where 子句 (foo = 2) 应用于临时表并返回结果。

问题是,如果您的 View 有 1000 万行,它将获取所有 1000 万行,然后应用 where 子句,这是非常低效的。

那么,有人知道这背后的原理是什么吗?我知道 MS Sql Server 没有这样做,我敢打赌 Oracle 也没有这样做。

最佳答案

有人问了类似的问题on the MySQL forums关于工会的观点,多年前。一位 MySQL 开发人员同意使用 UNION 在 View 上实现 MERGE 算法应该很容易,但据我所知,它仍然没有实现!

关于mysql - 为什么在使用 "merge"等构造时不能使用 "group by"算法创建 MySql View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14949038/

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