PDF (Ltr)- 5.2 mb
PDF (A4)- 5.2 mb
版权1997 - 2021 PHP文档组。10bet官方网站
持久连接背后的想法是,客户端流程和数据库之间的连接由一个客户端可以重用的过程,而不是被多次创建和销毁。这减少了创建新连接的开销每次是必需的,未使用的连接缓存和准备重用。
与mysql扩展,mysqli不提供一个单独的函数打开持久连接。你必须预先考虑的持久连接病人:
当连接的主机名。
持久连接的问题是,他们可以被客户在不可预知的状态。例如,表锁可能被激活之前客户意外终止。新客户流程重用这个持久连接将连接”就像”。任何清理需要由新客户流程之前,可以充分利用持久连接,增加了程序员的负担。
的持久连接mysqli
然而扩展提供了内置的清理处理代码。清理由mysqli
包括:
回滚活动事务
关闭和删除临时表
打开表
重置会话变量
关闭预备语句(总是发生在PHP)
关闭处理程序
释放锁了,
GET_LOCK
这确保持久连接在一个干净的状态返回从连接池中,在客户端进程使用。
的mysqli
扩展这个清理通过自动调用c api函数mysql_change_user ()
。
自动清理功能有其优点和缺点。优点是程序员不再需要担心添加清理代码,因为它被称为自动。然而,缺点是可能的代码潜在的有点慢,因为代码来执行清理需要运行每次连接返回的连接池。
可以关掉自动清理代码,通过编译PHPMYSQLI_NO_CHANGE_USER_ON_PCONNECT
定义的。
请注意
的mysqli
扩展支持持久连接时使用MySQL本地司机或MySQL客户端库。