基本上,MySQL中基本上有两种视图类型。
- 合并视图
这种类型的视图基本上只是使用视图的SQL重写查询。因此,这是您自己编写查询的捷径。这并没有提供真正的性能优势,但是使编写复杂的查询变得更容易并使维护更加容易(因为如果视图定义发生更改,则无需针对该视图更改100个查询,只需更改一个定义即可)。
- 临时视图
这种类型的视图使用视图SQL的查询创建临时表。它具有合并视图的所有优点,但也减少了视图表的锁定时间。因此,在高负载服务器上,它可能会获得相当可观的性能提升。
还有“未定义”视图类型(默认),让我们MySQL在查询时选择它认为是最佳的类型…
但是需要注意的重要一点是,MySQL不支持物化视图。因此,与Oracle不同的是,复杂的视图将大大提高针对它的查询的性能。视图的查询总是在MySQL中执行。
就效率而言,MySQL中的视图不会提高或降低效率。它们在那里使您在编写和维护查询时更轻松。我已经在具有数亿行的表上使用过视图,并且它们工作得很好…



