首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >MySql视图性能

MySql视图性能
EN

Stack Overflow用户
提问于 2012-04-25 01:06:29
回答 4查看 97.8K关注 0票数 82

如果您正在使用视图,您如何确保良好的性能?

或者,最好一开始就不使用视图,直接将等效项合并到select语句中?

EN

回答 4

Stack Overflow用户

发布于 2012-04-28 13:48:30

这是tl;dr总结,你可以在Peter Zaitsev和其他地方找到详细的评价。

MySQL中的视图通常不是一个好主意。在Grooveshark,我们认为它们是有害的,并总是避免使用它们。如果您很小心,您可以让它们工作,但它们充其量是记住如何选择数据的一种方法,或者使您不必重新键入复杂的连接。在最坏的情况下,它们会导致大量的效率低下,隐藏复杂性,导致意外的嵌套子选择(需要临时表并导致磁盘颠簸),等等。

最好避免使用它们,并将您的查询保持在代码中。

票数 12
EN

Stack Overflow用户

发布于 2012-04-27 15:56:20

我认为Peter Zaitsev的博客包含了大部分细节。从个人经验来看,如果你通常保持视图简单,那么视图可以表现得很好。在我的一个客户那里,他们不断地将一个视图叠加在另一个视图之上,最终导致了一场性能噩梦。

通常,我使用视图来显示表的不同方面。例如,在“我的员工”表中,向我显示经理或对非HR员工隐藏“薪资”字段。此外,请始终确保在查询和视图上运行解释,以准确地了解MySQL内部发生的事情。

如果你想在你的场景中得到确凿的证据,我建议你测试一下。很难说使用视图总是一个性能杀手,然后再说一次,一个糟糕的视图很可能会毁了你的性能。

票数 10
EN

Stack Overflow用户

发布于 2012-04-29 00:45:06

它们达到了它们的目的,但隐藏的复杂性和低效通常比更直接的方法更重要。我曾经遇到过一条连接两个视图的SQL语句,并对它们的结果进行排序。视图也在排序,所以执行时间似乎可以用几个小时来衡量。

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10302615

复制
相关文章

相似问题

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