亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術文章
文章詳情頁

PHP特點之數據庫永久連接

瀏覽:5日期:2022-09-15 14:10:55

永久的數據庫連接是指在腳本結束運行時不關閉的連接。當收到一個永久連接的請求時。PHP 將檢查是否已經存在一個(前面已經開啟的)相同的永久連接。如果存在,將直接使用這個連接;如果不存在,則建立一個新的連接。所謂“相同”的連接是指用相同的用戶名和密碼到相同主機的連接。

對 web 服務器的工作和分布負載沒有完全理解的讀者可能會錯誤地理解永久連接的作用。特別的,永久連接不會在相同的連接上提供建立“用戶會話”的能力,也不提供有效建立事務的能力。實際上,從嚴格意義上來講,永久連接不會提供任何非永久連接無法提供的特殊功能。

為什么?

這和 web 服務器工作的方式有關。web 服務器可以用三種方法來利用 PHP 生成 web 頁面。

第一種方法是將 PHP 用作一個“外殼”。以這種方法運行,PHP 會為向 web 服務器提出的每個 PHP 頁面請求生成并結束一個 PHP 解釋器線程。由于該線程會隨每個請求的結束而結束,因此任何在這個線程中利用的任何資源(例如指向 SQL 數據庫服務器的連接)都會隨線程的結束而關閉。在這種情況下,使用永久連接不會獲得任何地改變——因為它們根本不是永久的。

第二,也是最常用的方法,是把 PHP 用作多進程 web 服務器的一個模塊,這種方法目前只適用于 Apache。對于一個多進程的服務器,其典型特征是有一個父進程和一組子進程協調運行,其中實際生成 web 頁面的是子進程。每當客戶端向父進程提出請求時,該請求會被傳遞給還沒有被其它的客戶端請求占用的子進程。這也就是說當相同的客戶端第二次向服務端提出請求時,它將有可能被一個不同的子進程來處理。在開啟了一個永久連接后,所有請求 SQL 服務的后繼頁面都能夠重新使用這個已經建立的 SQL Server 連接。

最后一種方法是將 PHP 用作多線程 web 服務器的一個插件。目前 PHP 4 已經支持 ISAPI、WSAPI 和 NSAPI(在 Windows 環境下),這些使得 PHP 可以被用作諸如 Netscape FastTrack (iPlanet)、Microsoft’s Internet Information Server (IIS) 和 O’Reilly’s WebSite Pro 等多線程 web 服務器的插件。永久連接的行為和前面所描述的多過程模型在本質上是相同的。注意 PHP 3 不支持 SAPI。

如果永久連接并沒有任何附加的功能,那么使用它有什么好處?

答案非常簡單——效率。當客戶端對 SQL 服務器的連接請求非常頻繁時,永久連接將更加高效。連接請求頻繁的標準取決于很多因素。例如,數據庫的種類,數據庫服務和 web 服務是否在同一臺服務器上,SQL 服務器如何加載負載等。但我們至少知道,當連接請求很頻繁時,永久連接將顯著的提高效率。它使得每個子進程在其生命周期中只做一次連接操作,而非每次在處理一個頁面時都要向 SQL 服務器提出連接請求。這也就是說,每個子進程將對服務器建立各自獨立的永久連接。例如,如果有 20 個不同的子進程運行某腳本建立了永久的 SQL 服務器永久連接,那么實際上向該 SQL 服務器建立了 20 個不同的永久連接,每個進程占有一個。

注意,如果永久連接的子進程數目超過了設定的數據庫連接數限制,系統將會產生一些缺陷。如果數據庫的同時連接數限制為 16,而在繁忙會話的情況下,有 17 個線程試圖連接,那么有一個線程將無法連接。如果這個時候,在腳本中出現了使得連接無法關閉的錯誤(例如無限循環),則該數據庫的 16 個連接將迅速地受到影響。請查閱使用數據庫的文檔,以獲取關于如何處理已放棄的及閑置的連接的方法。

在使用永久連接時還有一些特別的問題需要注意。例如在永久連接中使用數據表鎖時,如果腳本不管什么原因無法釋放該數據表鎖,其隨后使用相同連接的腳本將會被永久的阻塞,使得需要重新啟動 httpd 服務或者數據庫服務。另外,在使用事務處理時,如果腳本在事務阻塞產生前結束,則該阻塞也會影響到使用相同連接的下一個腳本。不管在什么情況下,都可以通過使用?register_shutdown_function()?函數來注冊一個簡單的清理函數來打開數據表鎖,或者回滾事務。或者更好的處理方法,是不在使用數據表鎖或者事務處理的腳本中使用永久連接,這可以從根本上解決這個問題(當然還可以在其它地方使用永久連接)。

以下是一點重要的總結。永久連接是為通常連接建立一對一的分布而設計的。這意味著必須能夠保證在將永久連接替換為非永久連接時,腳本的行為不會改變。使用永久連接將(非常)有可能改變腳本的效率,但不改變其行為!

標簽: PHP
相關文章:
主站蜘蛛池模板: 男人粗大一出一进女人下面视频 | 欧美一级黄色录像 | 美女一级毛片免费看看 | 免费a在线| 精品视频在线播放 | 免费啪视频观在线视频在线 | 亚州精品一区二区三区 | 美女视频一区二区 | 中国一级特黄aa毛片大片 | 嫩草视频在线观看 | 国产二级毛片 | 婷婷成人亚洲 | 欧美日韩亚洲一区二区三区 | 精品久久中文网址 | 欧美日韩在线一本卡 | 性视频免费视频大全 | 一级做a爰片性色毛片刺激 一级做a爰片性色毛片视频图片 | 国产成人精品一区二区 | 国产综合在线视频 | 女人被男人狂躁免费视频 | 国内精品伊人久久久影视 | 免费一级a毛片在线播出 | 国产成人午夜极速观看 | 国产一级大片在线观看 | 国产精品va在线观看手机版 | 黄色在线视频免费 | 91sex在线观看免费 | 黄色毛片视频在线观看 | 色片大全 | 在线高清视频18jin观看 | 一级做a爱过程免费视频超级 | 午夜国产精品无套 | 黄一级片 | 久久中文字幕综合不卡一二区 | 国产剧情精品在线观看 | 亚洲综合91社区精品福利 | 香港三级欧美国产精品 | 可以免费观看的毛片 | 日本不卡高清免费v日本 | 欧美片欧美日韩国产综合片 | 精品国产一区二区在线观看 |