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

PHP
利用客户端缓存对网站进行优化的原理分析
php生成随机数或者字符串的代码
php include,include_once,require,require_once
php 特殊字符处理函数
php让图片可以下载的代码
网友原创的PHP模板类代码
wiki-shan写的php在线加密的解密程序
php chr() ord()中文截取乱码问题解决方法
php+AJAX传送中文会导致乱码的问题的解决方法
php面向对象的方法重载两种版本比较
在服务端进行目录建立、删除,文件上传、删除的过程的php代码
php递归列出所有文件和目录的代码
php获取某个目录大小的代码
php目录管理函数小结
Zend Guard一些常见问题解答
fleaphp下不确定的多条件查询的巧妙解决方法
PHP下10件你也许并不了解的事情
PHP常用函数小技巧
php5 pdo新改动加载注意事项
php5新改动之短标记启用方法

可扩展 可伸缩的 Oracle 与 PHP


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

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

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

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

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

创建和管理连接

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

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