首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么在使用group by等构造时,不能使用merge算法创建MySql视图?

为什么在使用group by等构造时,不能使用merge算法创建MySql视图?
EN

Stack Overflow用户
提问于 2013-02-19 10:53:23
回答 1查看 1.5K关注 0票数 1

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

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

代码语言:javascript
运行
复制
select * from MyView
where foo = 2

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

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

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

EN

Stack Overflow用户

发布于 2013-12-03 19:07:14

几年前,一个类似的问题被问到了on the MySQL forums关于工会的看法。一位MySQL开发人员同意使用UNION在视图上实现MERGE算法应该很容易,但是AFAIK它仍然没有实现!

票数 1
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14949038

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档