怎樣使PHP與MySQL資料庫進行持久連線

2020-07-16 10:05:30
本篇文章是關於介紹PHP與MySQL資料庫進行持久連線的具體操作步驟,有需要的朋友可以了解一下,希望能對你有幫助。

資料庫持久連線:

1.持久的資料庫連線是指在指令碼結束執行時不關閉的連線。當收到一個持久連線的請求時。PHP 將檢查是否已經存在一個(前面已經開啟的)相同的持久連線。如果存在,將直接使用這個連線;如果不存在,則建立一個新的連線。所謂「相同」的連線是指用相同的使用者名稱和密碼到相同主機的連線。

相關教學:mysql視訊教學

2.第一種方法是將 PHP 用作一個單獨執行的語言直譯器(CGI Wapper)。在這種情況下,使用持久連線和非持久連線沒有任何區別——因為PHP指令碼本身的執行不是持久的。

3.把 PHP 用作多進程 web 伺服器的一個模組,這種方法目前只適用於 Apache,相同的用戶端第二次向伺服器端提出請求時,它將有可能被一個不同的子進程來處理。在開啟了一個持久連線後,所有請求 SQL 服務的後繼頁面都能夠重用這個已經建立的 SQL Server 連線。

4.在持久連線中使用資料表鎖時,如果指令碼不管什麼原因無法釋放該資料表鎖,其隨後使用相同連線的指令碼將會被持久的阻塞,使得需要重新啟動 httpd 服務或者資料庫服務。

5.使用事務處理時,如果指令碼在事務阻塞產生前結束,則該阻塞也會影響到使用相同連線的下一個指令碼

6.程式使用持久連線(PDO::ATTR_PERSISTENT)存取資料庫,則一個PHP-FPM工作進程對應一個到MySQL的長連線.

請求結束後,PHP不會釋放到MySQL的連線,以便下次重用,這個過程對程式是透明的.

這可以看作是PHP-FPM維護的"資料庫連線池".

7.非但不能節約MySQL資源,反而會加劇資料庫的負荷。

PDO持久化連線:

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

證明:

相關教學:PHP視訊教學

以上就是怎樣使PHP與MySQL資料庫進行持久連線的詳細內容,更多請關注TW511.COM其它相關文章!