MySql视图是动态且高效的吗?

我正在寻找一个表视图,该表将突出显示满足特定条件的数据。例如,如果我有一个带有整数值的表,我希望我的视图显示值大于100的行。我知道如何通过在表上创建视图来实现这一点,但是视图是动态的吗?我已经在MySQL中对此进行了测试,这似乎是真的。但是,如果我的表有1000多个行,这样有效吗?视图仍将“动态”更新为原始表中的任何更改吗?

回答:

基本上,MySQL中基本上有两种视图类型。

  1. 合并视图

这种类型的视图基本上只是使用视图的SQL重写查询。因此,这是您自己编写查询的捷径。这并没有提供真正的性能优势,但是使编写复杂的查询变得更容易并使维护更加容易(因为如果视图定义发生更改,则无需针对该视图更改100个查询,只需更改一个定义即可)。

  1. 临时视图

这种类型的视图使用视图SQL的查询创建临时表。它具有合并视图的所有优点,但也减少了视图表的锁定时间。因此,在高负载服务器上,它可能会获得相当可观的性能提升。

还有“未定义”视图类型(默认),让我们MySQL在查询时选择它认为是最佳的类型…

但是需要注意的重要一点是,MySQL不支持物化视图。因此,与Oracle不同的是,复杂的视图将大大提高针对它的查询的性能。视图的查询总是在MySQL中执行。

就效率而言,MySQL中的视图不会提高或降低效率。它们在那里使您在编写和维护查询时更轻松。我已经在具有数亿行的表上使用过视图,并且它们工作得很好…

以上是 MySql视图是动态且高效的吗? 的全部内容, 来源链接: utcz.com/qa/420542.html

回到顶部