当前位置: 首页 > 图文教程 > 网络编程 > PHP > 可扩展 可伸缩的 Oracle 与 PHP

PHP
MYSQL版本大于4.1问题 - PHPchina
怎么让用户点击一个连接后,把一个图片另存了 - PHPchina
武汉10月15日Phper聚会召集!!! - PHPchina
php如果不等待exec执行的程序创建的子进程? - PHPchina
哪位知道DISCUZ处理防SQL注入的代码是哪部分 - PHPchina
求教!我实在不知道哪里问题,在线等ing - PHPchina
怎样结束用户某一进程 - PHPchina
比对用户名密码能不能这样写? - PHPchina
求助:如何在PHP+mysql中实现数据备份? - PHPchina
大家看看这个配置对吗 - PHPchina
如何禁止require当前文件 - PHPchina
无法将回调函数放在类中? - PHPchina
村里 PHP代码高亮是怎么实现的? - PHPchina
apache安装后.服务里没有apache2这个服务! - PHPchina
请教一个小问题 - PHPchina
config.php里面是不是应该把多数参数设置为常量而不是变量? - PHPchina
请教高手一个问题 - PHPchina
如何让百度收录我的网站 ?? - PHPchina
谁能给个注入的简单语句? - PHPchina
求PHP站内搜索思路 - PHPchina

可扩展 可伸缩的 Oracle 与 PHP


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-03   浏览: 297 ::
收藏到网摘: n/a

了解一般的技术和设计,用于编写与 Oracle 数据库的使用直接相关的可管理、可伸缩的快速 PHP 代码。

在过去九年中,PHP 已经从组装个人网站的小型语言发展到为世界上某些最大和流量最高的网站提供动力。任何高流量网站的三个最重要的设计方面是可伸缩性、性能和可维护性。可伸缩性意味着您的应用程序流量负载可以不断增长,而不会从根本上破坏其工作方式。性能是快速为单个请求提供服务的能力。 可维护性是能够在不造成过多负担的情况下修复、重新调整、扩增或更改应用程序的品质。

利用 PHP 来实现这三个设计目标并不困难,但确实需要预先考虑如何设计和构建您的应用程序。关于编写可管理、可伸缩的快速 PHP 代码的论题范围很广;针对每个论题都有大量的技术和文章。在本文中,我们将讨论那些与使用 Oracle 及 PHP 直接相关的因素。有很多一般(非 Oracle 专用)技术和设计可能非常有用。

我喜欢以一个尖锐的警告作为任何与性能相关的谈话或文章的开始:始终要记住,最后总有一天,快速却不完善的应用程序将毫无价值。性能调整以及对应用程序不利因素的设计提取都很容易分散您的精力。Web 的性质就是这样,经常发布版本的方法非常有效。(发布网站“新版本”的成本很低,因为最终用户始终需要这些代码。)这就允许您延迟对代码的重大调整,直到需要这样做为止。因此,首要目标应该是创建便于重新调整的代码。

创建和管理连接

与 Oracle 数据库最基本的交互之一是连接。要了解连接如何影响您的应用程序的性能和可伸缩性,需要了解连接的生命周期,如图 1 所示。每个步骤所涉及的工作如下:

  • 客户创建连接: 客户创建与 Oracle 监听器的网络连接,提供其认证证书,并请求会话。
  • 服务器创建一个新会话:在认证之后,服务器为客户创建一个新会话。如果您没有通过 Oracle 多线程服务器(MTS — 它在可伸缩性及性能问题上臭名昭著)使用共享会话,则此步骤包括服务器为会话创建一个专用进程。该进程通常称为影子进程。创建此进程需要不少工作量。除了创建进程的正常开销之外,影子进程在其创建期间还必须临时锁定某些共享系统资源。
  • 客户端执行查询: 既然客户端已经具有开放的连接,就可以根据需要来执行查询。
  • 客户端关闭连接: 当客户端完成工作后,关闭与服务器的连接。
  • 服务器毁坏会话: 与用户会话相关的影子进程被毁坏,任何未提交的事务被回滚。