使用 MySQL VIEW 时的性能注意事项

Posted

技术标签:

【中文标题】使用 MySQL VIEW 时的性能注意事项【英文标题】:Performance considerations when using MySQL VIEWs 【发布时间】:2010-08-18 19:09:08 【问题描述】:

我正在考虑在从数据库中提取数据时使用 mysql 视图来提供抽象。当我在寻找这方面的材料时,我遇到了this article,它的结尾是:

MySQL还有很长的路要走 具有正确优化视图的查询。

这篇文章是 2007 年的。这仍然适用吗?例如:MySQL 解决了这些问题吗?

【问题讨论】:

不幸的是,糟糕的程序员今天仍然存在 【参考方案1】:

MySQL 视图在功能上运行良好,但在大多数情况下表现不佳。

这是因为即使引入非常简单的视图也会导致优化器使用更糟糕的查询计划。这使得在一般情况下使用视图不切实际。

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

因此,如果您认为没有视图的解释计划还可以,那么如果有视图,它可能会变得很糟糕。据我所知,这在 MySQL 的最新开发版本中仍未解决。

您可以拥有视图,但不要期望获得不错的(即可接受的)性能。

【讨论】:

以上是关于使用 MySQL VIEW 时的性能注意事项的主要内容,如果未能解决你的问题,请参考以下文章

使用 @SuppressWarnings("unchecked") 时的性能注意事项

mysql主从切换维护时的几点注意

mysql 创建view,function,procudure的注意事项

在 php/mysql 应用程序中收集和存储银行帐户详细信息时的安全注意事项

mysql-zrm增备数据恢复时的注意事项

MySQL高性能SQL注意事项简述