一尘不染

MySql查看性能

mysql

已关闭 。这个问题需要更加集中。它当前不接受答案。


想改善这个问题吗? 更新问题,使其仅通过编辑此帖子来关注一个问题。

4年前关闭。

如果您打算使用视图,那么如何确保良好的性能?

还是最好不要先使用视图,而只是将等效视图合并到您的select语句中?


阅读 340

收藏
2020-05-17

共1个答案

一尘不染

这取决于。

这完全取决于您通过视图查看的内容。但最有可能减少您的精力并提供更高的性能。当SQL语句引用非索引视图时,解析器和查询优化器将分析SQL语句和视图的源,然后将它们解析为一个执行计划。SQL语句没有一个计划,而视图则没有一个单独的计划。

视图未编译
。它是由其他表组成的虚拟表。创建它时,它不会驻留在服务器上的某个位置。组成该视图的基础查询要获得与查询优化器相同的性能提升或改进。我从未在视图VS底层查询上测试过性能,但是我想性能可能会略有不同。如果数据是相对静态的,则可以在索引视图上获得更好的性能。这可能就是您在“编译”方面的想法。

视图的优点:

  1. 查看数据而不将数据存储到对象中。
  2. 限制表的视图,即可以隐藏表中的某些列。
  3. 连接两个或多个表并将其作为一个对象显示给用户。
  4. 限制对表的访问,以便没有人可以将行插入表中。

请参阅以下有用链接:

  1. VIEW与SQL语句的性能
  2. 视图比简单查询快吗?
  3. Mysql VIEWs与PHP查询
  4. MySql视图动态且高效吗?
  5. 物化视图与表格:有哪些优点?
  6. 通过视图查询是否比直接执行SQL慢?
  7. TEMPTABLE视图性能问题的解决方法
  8. 通过在SQL Server中使用索引视图来查看性能提升
2020-05-17