如果您走上使用视图的道路,如何才能确保良好的性能?
或者最好不要首先使用视图,而只是将等效项合并到您的 select 语句中?
这取决于。
这完全取决于您通过视图看到的内容。但很可能会减少您的努力并提供更高的性能。当 SQL 语句引用非索引视图时,解析器和查询优化器会分析 SQL 语句和视图的源,然后将它们解析为单个执行计划。 SQL 语句没有一个计划,视图也没有单独的计划。
视图未编译。它是由其他表组成的虚拟表。当您创建它时,它并不驻留在您服务器上的某个位置。构成视图的基础查询会受到查询优化器相同性能提升或影响的影响。我从未测试过视图及其底层查询的性能,但我认为性能可能会略有不同。如果数据相对静态,则可以在索引视图上获得更好的性能。这可能就是您所想的“编译”。
视图的优点:
- 查看数据而不将数据存储到对象中。
- 限制表的视图,即可以隐藏表中的某些列。
- 连接两个或多个表并将其作为一个对象显示给用户。
- 限制对表的访问,以便任何人都无法将行插入表中。
请参阅这些有用的链接:
- VIEW 与 SQL 语句的性能 https://stackoverflow.com/questions/1867896/performance-of-view-vs-sql-statement
- 视图比简单查询更快吗? https://stackoverflow.com/questions/439056/is-a-view-faster-than-a-simple-query
- Mysql VIEWS 与 PHP 查询 https://stackoverflow.com/questions/4426919/mysql-views-vs-php-query
- MySql 视图动态且高效吗? https://stackoverflow.com/questions/4886874/are-mysql-views-dynamic-and-efficient
- 物化视图与表:优点是什么? https://stackoverflow.com/questions/4218657/materialized-view-vs-tables-what-are-the-advantages
- 通过视图查询是否比直接执行 SQL 慢? https://stackoverflow.com/questions/4630633/is-querying-over-a-view-slower-than-executing-sql-directly
- TEMPTABLE 视图性能问题的解决方法 http://www.mysqlperformanceblog.com/2010/05/19/a-workaround-for-the-performance-problems-of-temptable-views/
通过在 SQL Server 中使用索引视图查看性能提升 http://www.techrepublic.com/article/see-performance-gains-by-using-indexed-views-in-sql-server/6160148罢工>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)