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.