代码之家  ›  专栏  ›  技术社区  ›  NullUserException Mark Roddy

使用MySQL视图时的性能注意事项

  •  3
  • NullUserException Mark Roddy  · 技术社区  · 14 年前

    当从数据库中提取数据时,我正在考虑使用MySQL视图来提供一个抽象。当我在找关于这个的材料时,我偶然发现 this article ,结尾是:

    MySQL还有很长的路要走 对视图进行了适当优化的查询。

    这篇文章是从2007年开始的。这仍然适用吗?MySQL解决了这些问题吗?

    1 回复  |  直到 14 年前
        1
  •  1
  •   MarkR    14 年前

    MySQL视图在功能上运行良好,但在大多数情况下性能较差。

    这是因为即使引入一个非常简单的视图,也会导致乐观主义者使用一个更糟糕的查询计划。这使得在一般情况下使用视图不切实际。

    通常,服务器会将整个视图具体化为一个临时表,这对良好的性能没有帮助(除非恰好只有很少的行)。

    因此,如果你认为没有视图的解释计划是可以的,如果有视图的话,它可能会变得很糟糕。据我所知,在最新的开发版本mysql中,这一点还没有得到解决。

    你可以有自己的观点,但不要期望有体面的(即可以接受的)表现。