Utilizar conexiones persistentes
Si mysqli se utiliza con mysqlnd, cuando se crea una conexión persistente, se genera una llamada COM_CHANGE_USER (mysql_change_user()) en el servidor. Esto asegura que la re-autenticación de la conexión se lleva a cabo.
Dado que hay una cierta sobrecarga asociada con la llamada COM_CHANGE_USER, es posible apagar esto en el tiempo de compilado. La reutilización de una conexión persistente entonces generará una llamada COM_PING (mysql_ping) para simplemente probar si la conexión es reusable.
La generación de COM_CHANGE_USER se puede apagar con el marcador de compilación MYSQLI_NO_CHANGE_USER_ON_PCONNECT. Por ejemplo:
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
O, alternativamente:
shell# export CFLAGS="-DMYSQLI_NO_CHANGE_USER_ON_PCONNECT" shell# configure --whatever-option shell# make clean shell# make
Observe que solamente mysqli sobre mysqlnd utiliza COM_CHANGE_USER. Otra combinación de extensión-controlador emplea COM_PING en el uso inicial de una conexión persistente.