數(shù)據(jù)庫持久連接:
1.持久的數(shù)據(jù)庫連接是指在腳本結(jié)束運(yùn)行時不關(guān)閉的連接。當(dāng)收到一個持久連接的請求時。PHP 將檢查是否已經(jīng)存在一個(前面已經(jīng)開啟的)相同的持久連接。如果存在,將直接使用這個連接;如果不存在,則建立一個新的連接。所謂“相同”的連接是指用相同的用戶名和密碼到相同主機(jī)的連接。
相關(guān)教程:mysql視頻教程
2.第一種方法是將 PHP 用作一個單獨(dú)運(yùn)行的語言解釋器(CGI Wapper)。在這種情況下,使用持久連接和非持久連接沒有任何區(qū)別——因?yàn)镻HP腳本本身的執(zhí)行不是持久的。
3.把 PHP 用作多進(jìn)程 web 服務(wù)器的一個模塊,這種方法目前只適用于 Apache,相同的客戶端第二次向服務(wù)端提出請求時,它將有可能被一個不同的子進(jìn)程來處理。在開啟了一個持久連接后,所有請求 SQL 服務(wù)的后繼頁面都能夠重用這個已經(jīng)建立的 SQL Server 連接。
4.在持久連接中使用數(shù)據(jù)表鎖時,如果腳本不管什么原因無法釋放該數(shù)據(jù)表鎖,其隨后使用相同連接的腳本將會被持久的阻塞,使得需要重新啟動 httpd 服務(wù)或者數(shù)據(jù)庫服務(wù)。
5.使用事務(wù)處理時,如果腳本在事務(wù)阻塞產(chǎn)生前結(jié)束,則該阻塞也會影響到使用相同連接的下一個腳本
6.程序使用持久連接(PDO::ATTR_PERSISTENT)訪問數(shù)據(jù)庫,則一個PHP-FPM工作進(jìn)程對應(yīng)一個到MySQL的長連接.
請求結(jié)束后,PHP不會釋放到MySQL的連接,以便下次重用,這個過程對程序是透明的.
這可以看作是PHP-FPM維護(hù)的 數(shù)據(jù)庫連接池 .
7.非但不能節(jié)約MySQL資源,反而會加劇數(shù)據(jù)庫的負(fù)荷。
PDO持久化連接:
$dbh = new PDO( mysql:host=localhost;dbname=test , $user, $pass, array( PDO::ATTR_PERSISTENT = true));
證明:


相關(guān)教程:PHP視頻教程
以上就是怎樣使PHP與MySQL數(shù)據(jù)庫進(jìn)行持久連接的詳細(xì)內(nèi)容,PHP教程
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。
新聞熱點(diǎn)
疑難解答