PHP Japan Conference 2024

持久连接

使用持久连接

如果使用 mysqlimysqlnd,创建持久连接时会在服务器上生成 COM_CHANGE_USER (mysql_change_user()) 调用。这确保了连接的重新身份验证。

由于 COM_CHANGE_USER 调用会产生一些开销,因此可以在编译时将其关闭。然后,重用持久连接将生成 COM_PING (mysql_ping) 调用来简单测试连接是否可重用。

可以使用编译标志 MYSQLI_NO_CHANGE_USER_ON_PCONNECT 关闭 COM_CHANGE_USER 的生成。例如:

shell# CFLAGS="-DMYSQLI_NO_CHANGE_USER_ON_PCONNECT" ./configure --with-mysql=/usr/local/mysql/ --with-mysqli=/usr/local/mysql/bin/mysql_config --with-pdo-mysql=/usr/local/mysql/bin/mysql_config --enable-debug && make clean && make -j6

或者:

shell# export CFLAGS="-DMYSQLI_NO_CHANGE_USER_ON_PCONNECT"
shell# configure --whatever-option
shell# make clean
shell# make

请注意,只有 mysqlnd 上的 mysqli 使用 COM_CHANGE_USER。其他扩展-驱动程序组合在首次使用持久连接时使用 COM_PING

添加注释

用户贡献的注释

此页面没有用户贡献的注释。
To Top