溫馨提示×

溫馨提示×

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

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

使PHP與MySQL數(shù)據(jù)庫進(jìn)行持久連接的方法

發(fā)布時(shí)間:2020-09-29 16:27:53 來源:億速云 閱讀:187 作者:小新 欄目:編程語言

這篇文章主要介紹使PHP與MySQL數(shù)據(jù)庫進(jìn)行持久連接的方法,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!

數(shù)據(jù)庫持久連接:

1.持久的數(shù)據(jù)庫連接是指在腳本結(jié)束運(yùn)行時(shí)不關(guān)閉的連接。當(dāng)收到一個(gè)持久連接的請求時(shí)。PHP 將檢查是否已經(jīng)存在一個(gè)(前面已經(jīng)開啟的)相同的持久連接。如果存在,將直接使用這個(gè)連接;如果不存在,則建立一個(gè)新的連接。所謂“相同”的連接是指用相同的用戶名和密碼到相同主機(jī)的連接。

相關(guān)教程:mysql視頻教程

2.第一種方法是將 PHP 用作一個(gè)單獨(dú)運(yùn)行的語言解釋器(CGI Wapper)。在這種情況下,使用持久連接和非持久連接沒有任何區(qū)別——因?yàn)镻HP腳本本身的執(zhí)行不是持久的。

3.把 PHP 用作多進(jìn)程 web 服務(wù)器的一個(gè)模塊,這種方法目前只適用于 Apache,相同的客戶端第二次向服務(wù)端提出請求時(shí),它將有可能被一個(gè)不同的子進(jìn)程來處理。在開啟了一個(gè)持久連接后,所有請求 SQL 服務(wù)的后繼頁面都能夠重用這個(gè)已經(jīng)建立的 SQL Server 連接。

4.在持久連接中使用數(shù)據(jù)表鎖時(shí),如果腳本不管什么原因無法釋放該數(shù)據(jù)表鎖,其隨后使用相同連接的腳本將會(huì)被持久的阻塞,使得需要重新啟動(dòng) httpd 服務(wù)或者數(shù)據(jù)庫服務(wù)。

5.使用事務(wù)處理時(shí),如果腳本在事務(wù)阻塞產(chǎn)生前結(jié)束,則該阻塞也會(huì)影響到使用相同連接的下一個(gè)腳本

6.程序使用持久連接(PDO::ATTR_PERSISTENT)訪問數(shù)據(jù)庫,則一個(gè)PHP-FPM工作進(jìn)程對應(yīng)一個(gè)到MySQL的長連接.

請求結(jié)束后,PHP不會(huì)釋放到MySQL的連接,以便下次重用,這個(gè)過程對程序是透明的.

這可以看作是PHP-FPM維護(hù)的"數(shù)據(jù)庫連接池".

7.非但不能節(jié)約MySQL資源,反而會(huì)加劇數(shù)據(jù)庫的負(fù)荷。

PDO持久化連接:

$dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass, array(
    PDO::ATTR_PERSISTENT => true
));

證明:

使PHP與MySQL數(shù)據(jù)庫進(jìn)行持久連接的方法

使PHP與MySQL數(shù)據(jù)庫進(jìn)行持久連接的方法

以上是使PHP與MySQL數(shù)據(jù)庫進(jìn)行持久連接的方法的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI