永久連接 (persistent connection)永久連接 (persistent connection)持久連接的SQL聯繫不密切的執行情況時,你的腳本的目的。 當一個永久連接的請求, PHP將檢查是否有相同的已經持久連接(即仍然開放較早者為準) 。 永久連接是有效的開銷,如果建立一個鏈接到您的SQL Server是高,例如由於Web服務器不運行在同一台計算機上的西服數據庫服務器。 永久連接並沒有給你任何功能,是不可能與非持久連接。 他們設計的一對一映射到經常的聯繫。 您應該總是能夠永久連接替換為非永久連接。 資源pg_pconnect (字符串connection_string ) : 打開一個持久連接,並返回一個連接資源一樣pg_connect ( )所需要的其他PostgreSQL的職能。 該connection_string參數是整合負債相同pg_connect ( ) 。 pg_close ( )將不會持續密切聯繫所產生的pg_pconnect ( ) 。 背景Web服務器上,他們的孩子和數據庫連接 有三種方式中,您的Web服務器可以利用PHP生成的網頁。 第一種方法是將PHP用作一個“外殼” 。 這種方法運行,一個實例的PHP解釋器創建和銷毀的每一個頁面請求(一個PHP頁面)到您的Web服務器裝潢。 因為它是後銷毀的每一個要求,任何資源,它具有(如鏈接到一個SQL數據庫服務器)關閉時,它摧毀。 在這種情況下,您不會獲得任何試圖使用永久連接-他們根本不存在。 第二,也是最常用的方法,是把PHP用作一個模塊在一個多進程web服務器,它目前只適用於Apache 。 對於一個多服務器的典型特徵是有一個過程(母公司) ,其中坐室內裝潢標一套流程(兒童)誰實際做的工作,服務網頁。 當每個請求是在從客戶端,它被傳遞給了孩子,還沒有被其它的客戶端。這意味著當在同一客戶端所做的第二次請求到服務器,可以提供服務的一個不同的子進程比第一次。 什麼是持久性方面對於你來說意味著在這種情況下,這樣做每個孩子的過程只需要連接到SQL Server的第一次,它提供的商務中心網頁,利用這種聯繫。 當另一個網頁需要的SQL Server連接,它可以重複使用的連接兒童早些時候成立。 為什麼要使用永久連接? 答案非常簡單-效率。 永久連接是好的,如果開銷,以創建一個鏈接到您的SQL Server是很高的。 不論這個開銷確實是高,取決於很多因素。 喜歡什麼樣的數據庫,這是它是否位於同一計算機上的Web服務器位於網路行銷,如何裝機器的SQL服務器位於是等等。 底線是,如果這方面開銷大,永久連接將很大。 缺點永久連接 如果您正在使用的數據庫連接數限制,數目超過了持續兒童連接。 如果數據庫的限制為16同步連接,並在過程中忙碌的服務器會話,有17個線程試圖連接,一個將無法。 如果有錯誤在腳本中不允許連接無法關閉(例如無限循環) ,則該數澎湖民宿據庫的16個連接將迅速淹沒。 檢查您的數據庫文件,以了解關於如何處理已放棄的及閒置的連接。 有幾個額外的告誡牢記使用永久連接時。 其中之一是,使用數據表鎖時的持久連接,如果腳本不管什麼原因無法釋放該鎖,其隨後使用相同連接的腳本將會被永久的阻塞,並可能要求您重新啟動httpd服務或者數據庫服務。 另一個原因是,當使信用貸款用的交易,交易區塊也將結轉到下一個腳本,使用這方面如果腳本結束在事務阻塞產生前。 無論是哪種情況,都可以通過使用register_shutdown_function ( )來註冊一個簡單的清理函數來打開數據表鎖,或者回滾事務。 更重要的是,避免這個問題完全是由不使用永久連接的腳本,它使用表鎖或交易(您仍然可以使用他們在其他地方) 。 住商房屋 php.ini配置 為了使持續的方面, pgsql.allow_persistent的php.ini指令,必須設置為“論” (這是默認值) 。 的最大數量的持續連接可以定義與pgsql.max_persistent的php.ini指令(預設值為-1為沒有限制) 。


.msgcontent .wsharing ul li { text-indent: 0; }



分享

Facebook
Plurk
seoYAHOO!

arrow
arrow
    全站熱搜

    rz69rzbgcj 發表在 痞客邦 留言(0) 人氣()