MySQL查看性能

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (15)

如果你正在使用视图的道路上,你如何确保良好的表现?

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

提问于
用户回答回答于

这完全取决于你从视图中看到的是什么。但最有可能的是减少你的努力和提供更高的表现。当SQL语句引用非索引视图时,解析器和查询优化器将分析SQL语句和视图的源,然后将它们解析为单个执行计划。SQL语句没有一个计划,视图没有单独的计划。

未编译视图。它是由其他表组成的虚拟表。当创建它时,它并不驻留在您的服务器上的某个地方。构成视图的底层查询受查询优化器相同的性能增益或影响。我从未在视图和其底层查询上测试过性能,但我可以想象性能可能略有变化。如果数据是相对静态的,则可以在索引视图上获得更好的性能。这可能是你所想的,也许是从“汇编”的角度来看的。\

优点:

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

从个人经验来看,如果你能保持简单,观点就能表现得很好。在我的一个客户,他们继续层层的一个视图在另一个之上,它结束了一个完美的噩梦。

通常,我使用视图来显示表的不同方面。例如,在“员工”表中,向我显示经理或向非人力资源员工隐藏薪资字段。此外,一定要确保在查询和视图上运行解释,以准确了解MySQL内部发生的事情。

如果你想要在你的场景中有确凿的证据,我建议你去测试。很难说使用视图始终是性能的杀手,然而,一个写得不好的视图可能会扼杀您的性能。

扫码关注云+社区