長連接不是用mysql_pconnect??
企業建站必須是能夠以充分展現企業形象為主要目的,是企業文化與產品對外擴展宣傳的重要窗口,一個合格的網站不僅僅能為公司帶來巨大的互聯網上的收集和信息發布平臺,成都創新互聯面向各種領域:成都發電機回收等網站設計、營銷型網站建設解決方案、網站設計等建站排名服務。
?php
$conn?=?mysql_pconnect("localhost","root","")?or?die("Error.");
echo?"MySQL線程號:".?MySQL_thread_id($conn).?"br?/";
echo?"Apache進程號".?getmypid();
?
如果操作這個數據的人不多,并你進行長連接的連接資源使用很頻繁的話使用長連接。這樣速度比較快。
顧名思義,長連接就是一直連接從未斷開。你應該清楚數據庫連接有的是限定連接個數的。你一直連接就占用了一個連接資源。如果連接這個數據庫的人不多的話,這樣沒問題,還能加快速度,你每次操作數據庫的時候不用在進行連接操作。這樣會加快效率。
如果這個數據庫使用的人比較多的話,最好使用短鏈接,這樣用完就釋放。不會一直占著連接資源。導致其他人想用都連接不上。
需要關閉數據庫的。如果是一個長連接的話,你的網站加入并發請求數很多,也就是說同時有很多人來訪問你的網站,并且每個訪問者都需要查詢一次mysql數據庫的話,會很快把你的系統資源消耗完了。短鏈接就沒有這個問題,每次查詢完就馬上關閉了,這樣不容易消耗過多的系統資源。但是長連接也有個好處就是,頻繁查詢的時候,可以節省了多次建立TCP連接的時間。
使用socket_create()方法創建一個socket對象,但是當當前腳本執行完以后,這個socket就被釋放掉了,自然連接也就被關閉了。
可以 用pconnect就行,但是要設置好連接數和過期時間。
長連接避免了每次請求都重新建立連接,理論上是好事兒,欣然用之;后發現nginx偶爾會報如下錯誤:
.... [error] 23951#0: *121082947 readv() failed (104: Connection reset by peer) while reading upstream ...
而且有同事A反應,調用同事B的接口時,收到了200響應碼,但是沒有收到響應的其他數據,而且確認不是因為超時所致;同事B反饋說,接口執行正常,應該有數據返回,而且確認接口執行速度很快,日志為證。
雙方說的都對,事實卻是如此,我試圖模擬這種情況的出現,模擬辦法:
讓接口輸出響應碼后,直接殺死fpm進程,nginx果然報出了幾乎一樣的錯誤;但是實際場景中,沒有發現fpm猝死的任何蛛絲馬跡,也找不到fpm會在響應頭輸出之后就猝死的理由;
所謂長連接,指在一個TCP連接上可以連續發送多個數據包,在TCP連接保持期間,如果沒有數據包發送,需?要雙方發檢測包以維持此連接。短連接是指通信雙方有數據交互時,就建立一個TCP連接,數據發送完成后,則斷開此TCP連接,即每次TCP連接只完成一對?CMPP消息的發送。 ??現階段,要求ISMG之間必須采用長連接的通信方式,建議SP與ISMG之間采用長連接的通信方式。
短連接:比如http的,只是連接、請求、關閉,過程時間較短,服務器若是一段時間內沒有收到請求即可關閉連接。長連接:有些服務需要長時間連接到服務器,比如CMPP,一般需要自己做在線維持。
文章標題:php數據庫長連接,php和數據庫連接
標題鏈接:http://vcdvsql.cn/article22/hedocc.html
成都網站建設公司_創新互聯,為您提供建站公司、定制網站、品牌網站設計、App開發、企業建站、手機網站建設
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯