我最近从一个PHP项目从ext/mysql切换到mysqli。在该项目中,我通过将new_link
参数设置为false
,广泛地使用了mysql_connect
的连接重用功能。分享mysqli连接
据我所知,mysqli_connect
中没有这样的机制;即使使用相同的主机和用户,它也会始终返回新的连接。它是否正确?是否有其他功能可以模仿重用行为?
注:我看到,与主机预先p:
将创建一个持久连接。但是,这不能用于我的情况,因为我的项目的一部分依赖于临时表。
更新:
实际mysqli的对象嵌入在管理访问数据库DB处理类。该处理程序总是用于与数据库进行交互。
我简化了我的问题,因为我只是想集中讨论mysqli是否可以通过多次调用具有相同参数的mysqli_connect
自动重复使用单个连接的问题。我的项目是对框架的扩展,并提供多个入口点和挂钩。我无法控制从主机框架到我的扩展功能的命令或数量。我的扩展的每个部分都创建了一个DB处理程序的实例,但可以重用实际的基础连接。
DB处理程序的创建是通过db工厂完成的。所以我很可能必须在那里自己实现某种连接缓存...
不应该持久连接保持,因为它会保持池重用? “持久连接背后的想法是,客户端进程和数据库之间的连接可以被客户端进程重用,而不是被多次创建和销毁。” – Prix
我认为使用持久连接可能会导致温度问题。表,并且由于我无法控制服务器配置,我宁愿不使用此功能。但是,我仍然不知道是否多次打开来自同一脚本的持久连接将始终返回相同的连接*,而不关闭连接* –
试验和错误;) – Prix