欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

c mysql 查詢超時,php的pconnect和connect的區別

林雅南2年前24瀏覽0評論
c mysql 查詢超時,php的pconnect和connect的區別?

主要區別在于當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.其實這個也很好解釋了xgy_p的測試中若操作比較簡單, pconnect比connect效率高很多, 而且跟使用jsp的連接池的速度比較接近. 因為這個時候httpd進程可以不斷的給復用.而 當DB操作復雜, 耗時較長時, 因httpd會fork很多并發進程處理, 而先產生的httpd進程不釋放db連接, 使得后產生的httpd進程無法連上db. 因為這樣沒有復用其它httpd進程的mysql連接. 于是會就產生很多連接超時, 像一開始的1000個并發連接測試說幾乎都是連接超時就是這個原因.(反進來看jsp用的如果是純粹的db連接池, 則不會有因為達到mysql連接上限而連不上的問題, 因為jsp的連接池會使得可以等待其它連接使用完畢并復用. )因此在并發訪問量不高時,使用pconnect可以簡單提高訪問速度, 但在并發量增大后, 是否再使用pconnect就要看程序員的選擇了.