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.