Conexiones persistentes

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.