我试图优化我的一些PHP代码。我发现我的PHP脚本的大部分时间都是在脚本开始连接到mysql数据库的过程中花费的。任何方式来保持在PHP连接到MySQL数据库?
我只在开始时连接数据库一次,并在脚本结尾处关闭数据库连接。
但是对于每个请求这个页面的用户都必须建立一个新的连接。
有没有办法保存对数据库的引用并共享所有请求?
我试图优化我的一些PHP代码。我发现我的PHP脚本的大部分时间都是在脚本开始连接到mysql数据库的过程中花费的。任何方式来保持在PHP连接到MySQL数据库?
我只在开始时连接数据库一次,并在脚本结尾处关闭数据库连接。
但是对于每个请求这个页面的用户都必须建立一个新的连接。
有没有办法保存对数据库的引用并共享所有请求?
你可以使你的连接持久化(PDO使用PDO::ATTR_PERSISTENT => true),但我的推理是找出为什么你的脚本花了很多时间连接到mysql并在那里做一些改进。
考虑一下:
skip-auto-rehash
从my.cnf
)是的,你可以做到这一点。
如果您使用MySQLi扩展(老一个未经我末是过时!),你可以通过创建实例时传递p:
作为前缀的主机名的持久连接:
请参阅mysqli::__construct。
如果你真的使用旧的MySQL扩展,有mysql_pconnect的持久连接。
或者,如果您使用的是PDO,那么您可以使用setAttribute()
来使用PDO::ATTR_PERSISTENT
。
有关在PDO
中使用长连接的文档。
我可以知道downvote的原因吗? – hjpotter92 2013-03-03 13:58:02
看起来有人花时间报复你们俩投票吗? – PeeHaa 2013-03-03 14:01:08
@PeeHaa猜猜所以。 – hjpotter92 2013-03-03 14:04:38
“我想,大部分时间......”你想通怎么样?你真的测试过它吗?如果不测试瓶颈是什么,做这种事情是没有用的。 – PeeHaa 2013-03-03 13:54:10
我测试过了。 ;) – 2013-03-03 13:56:30
你也可能想看看缓存。 – PeeHaa 2013-03-03 14:01:42