我试图优化我的一些 PHP 代码。我发现我的 PHP 脚本的大部分时间都花在了脚本开头连接到我的 mysql 数据库的过程中。
我只在开始时连接到数据库一次,并在脚本结束时关闭数据库连接。
但是对于每个请求此页面的用户,都必须建立一个新的连接。
有没有办法保存对数据库的引用并为所有请求共享它?
我试图优化我的一些 PHP 代码。我发现我的 PHP 脚本的大部分时间都花在了脚本开头连接到我的 mysql 数据库的过程中。
我只在开始时连接到数据库一次,并在脚本结束时关闭数据库连接。
但是对于每个请求此页面的用户,都必须建立一个新的连接。
有没有办法保存对数据库的引用并为所有请求共享它?
是的,你可以做到这一点。
如果您使用的是 MySQLi 扩展(最后没有i的旧扩展已过时!p:
),您可以通过在创建实例时将前缀作为主机名
传递来创建持久连接:
请参阅mysqli::__construct。
如果你真的在使用旧的 MySQL 扩展,有mysql_pconnect for persistent connections。
或者,如果您使用的是 PDO,那么您可以setAttribute()
使用PDO::ATTR_PERSISTENT
.
有关在PDO
.
您可以使您的连接持久(对于 PDO,使用PDO::ATTR_PERSISTENT => true),但我的建议是找出您的脚本为什么要花费大量时间连接到 mysql 并在那里进行一些改进。
考虑一下:
skip-auto-rehash
来自评论my.cnf
)