最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

解析php中mysql_connect與mysql_pconncet的區(qū)別詳解

 更新時(shí)間:2013年05月15日 17:21:40   作者:  
本篇文章是對php中mysql_connect與mysql_pconncet的區(qū)別進(jìn)行了分析介紹,需要的朋友參考下
說說mysql_connect與mysql_pconnect的區(qū)別,這倆函數(shù)用法上差不多,網(wǎng)上有說應(yīng)該用pconnect的,pconnect是個(gè) 好東西;也有視pconnect如洪水猛獸的,堅(jiān)決不讓用pconnect的,也有態(tài)度曖昧不清的。那這個(gè)東西到底如何呢?

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

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

當(dāng)db操作復(fù)雜, 耗時(shí)較長時(shí), 因httpd會(huì)fork很多并發(fā)進(jìn)程處理, 而先產(chǎn)生的httpd進(jìn)程不釋放db連接, 使得后產(chǎn)生的httpd進(jìn)程無法連上db. 因?yàn)檫@樣沒有復(fù)用其它httpd進(jìn)程的mysql連接. 于是會(huì)就產(chǎn)生很多連接超時(shí)。 在并發(fā)訪問量不高時(shí),使用pconnect可以簡單提高訪問速度, 但在并發(fā)量增大后, 是否再使用pconnect就要看程序員的選擇了.

就我個(gè)人認(rèn)為, php現(xiàn)在對mysql的連接并沒有真正用到連接池, pconnect也只是相當(dāng)于借了apache的進(jìn)程池來用, 所以在并發(fā)訪問量大的時(shí)候pconnect并不能很好的提高訪問db效率.

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

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

相關(guān)文章

  • php array_reverse 以相反的順序返回?cái)?shù)組實(shí)例代碼

    php array_reverse 以相反的順序返回?cái)?shù)組實(shí)例代碼

    本篇文章主要介紹了php array_reverse 以相反的順序返回?cái)?shù)組實(shí)例代碼,具有一定的參考價(jià)值,有興趣的可以了解一下。
    2017-04-04
  • ThinkPHP函數(shù)詳解之M方法和R方法

    ThinkPHP函數(shù)詳解之M方法和R方法

    本篇文章給大家介紹ThinkPHP函數(shù)詳解之M方法和R方法,M方法用于實(shí)例化一個(gè)基礎(chǔ)模型類,而R方法用于調(diào)用某個(gè)控制器的操作方法,感興趣的朋友跟著腳本之家的小編一起來學(xué)習(xí)吧
    2015-09-09
  • 最新評論

    新蔡县| 瓮安县| 八宿县| 白山市| 定结县| 江华| 山阴县| 定兴县| 阜平县| 吕梁市| 鞍山市| 迁西县| 同仁县| 德庆县| 什邡市| 来安县| 阿克| 岳普湖县| 富源县| 赤城县| 安溪县| 彰武县| 阳泉市| 喀什市| 鄂伦春自治旗| 哈巴河县| 洪雅县| 扬州市| 乌拉特后旗| 舞钢市| 新巴尔虎右旗| 汤阴县| 如皋市| 临猗县| 加查县| 长治县| 石渠县| 西华县| 惠水县| 株洲市| 辽阳市|