智能优化器将以相同的方式提出相同的执行计划.但是如果存在差异,那将是因为优化器由于某种原因无法正确预测视图的行为,这意味着子查询在某些情况下可能具有优势.
但这不是重点; 这是一个正确性问题.视图和子视图用于不同的目的.您使用视图来提供代码重用或安全性.当您应该使用视图而不了解安全性和维护含义时,到达子查询是愚蠢的. 正确性胜过表现.
两者在MySQL中都不是特别有效.在任何情况下,MySQL都不会在视图中缓存数据,因此视图只是在查询执行中添加了另一个步骤.这使得视图比子查询慢.查看此博客文章了解更多信息http://www.mysqlperformanceblog.com/2007/08/12/mysql-view-as-performance-troublemaker/
一种可能的替代方案(如果您可以处理稍微过时的数据)是物化视图.查看Flexviews以获取更多信息和实施.
| 归档时间: |
|
| 查看次数: |
3814 次 |
| 最近记录: |