2010-09-11 78 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