PHP-CI框架數據庫連接默認是長連接,需要注意應用場景


在CI框架的數據庫配置文件中$db['default'] ['pconnect'] = TRUE,永久的數據庫連接是指在您的腳本結束運行時不關閉的連接。

當收到一個永久連接的請求時,PHP將檢查是否已經存在一個前面已經開啟的相同的永久連接,
如果存在,將直接使用這個連接;如果不存在,則建立一個新的連接。

所謂“相同”的連接是指用相同的用戶名和密碼到相同主機的連接。

適當的選擇可以提高性能,但是如果在永久連接中使用數據表鎖時,如果無法釋放數據表鎖,隨后使用相同連接的腳本將會被永久阻塞,使得我們必須重啟httpd服務或者數據庫服務;

在不了解這個機制的時候就很容易導致MySql的數據庫連接過多而不能及時釋放;
在順網無線項目中使用了這個機制,當用戶訪問過多時直接導致數據庫too many connects;


當然對數據庫壓力和web服務器資源消耗最大的數據庫應用一個是全表like操作,另外一個就是打開關閉數據庫了,其實在一個站點中,無論有多少個人連接到這個站點,讀取的數據庫,使用的用戶名、密碼都是同一個。你不是主機提供商,不會為你的網站上的每一個用戶單獨創建一個數據庫吧。只要你的網站在運行,使用長久連接就保證數據庫的連接是打開的。這樣可以減少服務器的壓力。一方面服務器保證了你這個是已經通過登錄驗證的,不用每次查詢用戶信息庫來驗證用戶名和密碼。另一方面,你的PHP程序也可以直接執行SQL語句,減少了工作量。

因此要合理的使用短連接和長連接;

用的時候分析應用場景和性能壓力測試一番。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM