2010-09-11 86 views
4

我有一個從處理腳本'getajax.php'拉出的ajax調用。用於Ajax調用的持久數據庫連接

調用的是「getajax.php」腳本,它具有數據庫連接詳情,請選擇,功能等做出

我的問題是:

每次呼叫由「getajax.php」收到它會通過mysql_connect,mysql_select,然後查詢。

這是處理數千個同時呼叫的正確方法嗎?

如何避免每次撥打電話時打開mysql連接,重新使用一個現有連接進行所有呼叫。

想有一個呼籲:

$dbconnect = mysql_connect('host','user','pass'); 
mysql_select_db('databasename') or die("Unable to select database"); 

我怎麼能打開父母的持久連接,以便「getajax.php」腳本只是reususes沒有命令遍地運行這些MySQL的此連接。

不確定如何處理。

謝謝大家!

回答

2

您可以使用mysql_pconnect(http://www.php.net/manual/en/function.mysql-pconnect.php)創建與數據庫的持久連接。

+0

非常感謝。 !像魅力一樣工作。 – Codex73 2010-09-11 14:01:52

+0

不!但這不是必需的,pconnect可以幫助您最大限度地減少每次創建與數據庫的新連接時的開銷。 mysql_select_db不會產生任何明顯的開銷。每次腳本執行時,您仍然需要有pconnect/select_db。 – halfdan 2010-09-11 14:04:35

+0

超級!我還在手動鏈接中看到,我們可以將select作爲查詢的一部分包含進去,從而消除函數調用。像這樣:mysql_query('SELECT * FROM database_name.table_name'); http://php.net/manual/en/function.mysql-select-db.php – Codex73 2010-09-11 14:07:32

1

這聽起來像你需要連接池,其中一組連接始終保持爲客戶端。它減少了打開新連接的開銷。您通常不會爲每個客戶端建立連接,而是爲多個同時請求的客戶端配置一組連接。

有關mysql_pconnecthere的相關SO問題的更多詳細信息,請參閱here