【问题标题】:PHP & Postgres: View vs. SELECT, when to use a view?PHP 和 Postgres:视图与 SELECT,何时使用视图?
【发布时间】:2010-11-11 18:18:01
【问题描述】:

与我之前的问题有关: PHP and Databases: Views, Functions and Stored Procedures performance 只是为了对大型 SELECT 查询提出更具体的问题。

什么时候使用 View 而不是在代码中编写 SELECT 查询并调用它更方便:

 $connector->query($sql)->fetchAll();

在决定是最好地使用视图还是保持原样时,需要考虑哪些因素。比如说,如果你连接几个表,选择一定数量的数据等等。

我在一个大型网络应用程序(使用 PHP 和 Postgres)的上下文中询问,并寻找性能和优化。

【问题讨论】:

    标签: php postgresql select


    【解决方案1】:

    当您使用 PHP 源代码 + 视图(而不仅仅是 PHP 源代码)时要考虑的一件事是,您现在在更新应用程序时有两种源要修改:

    • 您必须将新的 PHP 源代码放在服务器上
    • 并且您必须更新视图

    如果您不希望应用程序崩溃,有时您必须同时执行此操作...或者您必须在编程时认为应用程序必须使用过时/更新版本的视图正常运行(几秒钟)。

    您可能还需要考虑版本控制:版本控制 PHP 脚本很简单:只需使用 SVN 就可以了,因为它是文本文件。 对于视图,要获得相同类型的版本控制,您必须处理文本文件(在数据库生产服务器上更新它们之前在 SVN 上提交),并使这些文件与数据库服务器保持同步——看起来很容易,但它不是当您必须将紧急补丁推送到生产环境时^^

    就个人而言,我通常会在真正产生差异时使用视图/存储过程:例如,如果计算需要数千个 SQL 查询(因此,来自 PHP 的数千个调用,等待响应等等) ) 或两台服务器之间的数据交换过多,使用存储过程真的很棒!

    (没用过postgre,其他产品思路一样)

    【讨论】:

      猜你喜欢
      • 2014-05-08
      • 2015-06-09
      • 2017-08-29
      • 2011-07-13
      • 2016-04-22
      • 1970-01-01
      • 2022-01-15
      • 2011-01-02
      • 1970-01-01
      相关资源
      最近更新 更多