10bet网址
MySQL PHP API
下载本手册
PDF(美国Ltr)- 2.4 mb
PDF (A4)- 2.4 mb


MySQL PHP API/MySQL改进的扩展/ mysqli扩展和持久连接

3.4 mysqli扩展和持久连接

PHP文档组版权所有。10bet官方网站

持久连接背后的思想是客户端进程和数据库之间的连接可以被客户端进程重用,而不是被多次创建和销毁。这减少了每次需要创建新连接时创建新连接的开销,因为未使用的连接被缓存并准备重用。

与mysql扩展不同,mysqli没有提供一个单独的函数来打开持久连接。要打开持久连接,您必须前置病人:连接时的主机名。

持久连接的问题是客户端可能会将它们置于不可预知的状态。例如,表锁可能在客户端意外终止之前被激活。重用此持久连接的新客户端进程将获得该连接就像.在新的客户端进程能够很好地利用持久连接之前,任何清理都需要由它来完成,这增加了程序员的负担。

的持久连接mysqli然而,扩展提供了内置的清理处理代码。进行的清理mysqli包括:

  • 回滚活动事务

  • 关闭并删除临时表

  • 打开表

  • 重置会话变量

  • 关闭准备好的语句(PHP中总是这样)

  • 关闭处理程序

  • 释放通过GET_LOCK

这确保在客户端进程使用持久连接之前,从连接池返回的持久连接处于干净的状态。

mysqliextension通过自动调用C-API函数来进行清理mysql_change_user ()

自动清理功能有优点也有缺点。这样做的好处是程序员不再需要担心添加清理代码,因为它是自动调用的。然而,缺点是代码可能潜在的稍微慢一点,因为每次从连接池返回连接时都需要运行执行清理的代码。

可以通过编译PHP来关闭自动清理代码MYSQLI_NO_CHANGE_USER_ON_PCONNECT定义的。

请注意

mysqli当使用MySQL本地驱动程序或MySQL客户端库时,扩展支持持久连接。