亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

mysql_connect與mysql_pconncet在php中有什么不同

發布時間:2020-12-29 15:13:29 來源:億速云 閱讀:135 作者:Leah 欄目:開發技術

mysql_connect與mysql_pconncet在php中有什么不同?相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。

永久鏈接并不是說,服務器打開了一個連接,然后所有的人都共享這個鏈接。永久連接一樣是每個客戶端來就打開一個連接,有200人訪問就有200個連接。其 實mysql_pconnect()本身并沒有做太多的處理, 它唯一做的只是在php運行結束后不主動close掉mysql的連接.

在php經cgi方式運行時pconnect和connect是基本沒有區別的, 因為cgi方式是每一個php訪問起一個進程, 訪問結束后進程也就結束了, 資源也全釋放了. 當php以apache模塊方式運行時, 由于apache有使用進程池, 一個httpd進程結束后會被放回進程池, 這也就使得用pconnect打開的的那個mysql連接資源不被釋放, 于是有下一個連接請求時就可以被復用.這就使得在apache并發訪問量不大的時候, 由于使用了pconnect, php節省了反復連接db的時間, 使得訪問速度加快. 這應該是比較好理解的. 但是在apache并發訪問量大的時候, 如果使用pconnect, 會由于之前的一些httpd進程占用的mysql連接沒有close, 則可能會因為mysql已經達到最大連接著, 使得之后的一些請求永遠得不到滿足.若mysql最大連接數設為500, 而apache的最大同時訪問數設為2000,假設所有訪問都會要求訪問db, 而且操作時間會比較長,當前500個請求的httpd都沒有結束的時候,之后的httd進程都是無法連接到mysql的(因已經達到mysql最大連接 數). 只有當前500個httpd進程結束或被復用才可以連接得到了mysql.

當db操作復雜, 耗時較長時, 因httpd會fork很多并發進程處理, 而先產生的httpd進程不釋放db連接, 使得后產生的httpd進程無法連上db. 因為這樣沒有復用其它httpd進程的mysql連接. 于是會就產生很多連接超時。 在并發訪問量不高時,使用pconnect可以簡單提高訪問速度, 但在并發量增大后, 是否再使用pconnect就要看程序員的選擇了.

就我個人認為, php現在對mysql的連接并沒有真正用到連接池, pconnect也只是相當于借了apache的進程池來用, 所以在并發訪問量大的時候pconnect并不能很好的提高訪問db效率.

在實際的應用中,用mysql_pconnect的話,每次刷新和請求新的頁面都比較快,而用mysql_connect的話,每次刷新都要重新請求,當數據庫連接比較慢的時候,就能看出差異了。當你的數據庫連接比較慢,DB操作不是很復雜,并且你的程序足夠自信,不會產生死鎖的時候,或者你擁有對服務器的控制權,滿足以上四個條件中的任意兩個,那就可以用pconnect。

pconnect不用在腳本里關閉,可以在mysql中設置lifetime,也可以寫shell定期掃描,kill掉休眠過長的連接。 一句話總結:要用好pconnect,不僅僅是php腳本的事 還關系到數據庫和服務器的設置。

看完上述內容,你們掌握mysql_connect與mysql_pconncet在php中有什么不同的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

汤阴县| 辽阳县| 伊通| 璧山县| 盈江县| 申扎县| 宁河县| 曲麻莱县| 黔东| 钟山县| 五华县| 淮安市| 昌图县| 合水县| 吉安县| 金寨县| 武胜县| 嘉定区| 贺兰县| 靖宇县| 丁青县| 突泉县| 咸丰县| 那坡县| 达尔| 沁源县| 桐城市| 日照市| 荆门市| 普安县| 阆中市| 阿合奇县| 和顺县| 宜兴市| 调兵山市| 东平县| 霍山县| 土默特右旗| 军事| 阳西县| 濉溪县|