与我之前的问题相关: PHP and Databases: Views, Functions and Stored Procedures performance 只是为了提出有关大型SELECT查询的更具体的问题。
何时使用View而不是在代码中编写SELECT查询并调用它更方便:
$connector->query($sql)->fetchAll();
在决定最佳使用视图时,要考虑哪些因素,或者只是保持原样。比如,如果你加入几个表,选择一定数量的数据等。
我在一个大型网络应用程序(使用PHP和Postgres)的环境中询问,并寻找性能和优化。
答案 0 :(得分:1)
使用PHP源代码+视图(而不仅仅是PHP源代码)时要考虑的一件事是,在更新应用程序时,现在有两种来源需要修改:
如果您不希望应用程序崩溃,您有时必须完全同时执行此操作...或者您必须编程认为应用程序必须运行状态良好且具有过时/更新版本的视图(几秒钟。)
你可能需要考虑的其他版本是:版本化PHP脚本很简单:只使用SVN及其正确的文本文件。 使用视图,要获得相同类型的版本,您必须使用文本文件(在数据库生产服务器上更新它们之前在SVN上提交),并保持与数据库服务器同步 - 看起来很简单,但它是不是你必须把紧急补丁推到生产^^
Personnaly,我通常使用视图/存储过程,因为它确实存在差异:例如,如果计算需要数千个SQL查询(因此,数千个来自PHP的调用,等待响应,等等) )或两个服务器之间的数据交换太多,使用存储过程真的很棒!
(从未使用过postgre,但这个想法和其他产品一样)