使用持久连接
如果 mysqli
与 mysqlnd
一起使用,当创建持久连接时,它会在服务器上生成一个 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
请注意,只有 mysqli
在 mysqlnd
上使用 COM_CHANGE_USER
。其他扩展驱动程序组合在首次使用持久连接时使用 COM_PING
。