Usando Conexões Persistentes
Se mysqli
for usada com mysqlnd
,
quando uma conexão persistente for criada ela gera uma chamada
COM_CHANGE_USER
(mysql_change_user()
) no servidor. Isto
assegura que a re-autenticação da conexão aconteça.
Como existe uma certa sobrecarga com a chamada
COM_CHANGE_USER
, é possível desligar isto
em tempo de compilação. O reúso de uma conexão persistente irá
gerar uma chamada COM_PING
(mysql_ping
)
para simplesmente testar se a conexão é reutilizável.
A geração de COM_CHANGE_USER
pode ser desligada
com a opção de compilação
MYSQLI_NO_CHANGE_USER_ON_PCONNECT
. Por exemplo:
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
Ou alternativamente:
shell# export CFLAGS="-DMYSQLI_NO_CHANGE_USER_ON_PCONNECT" shell# configure --whatever-option shell# make clean shell# make
Observe que somente mysqli
sobre mysqlnd
usa COM_CHANGE_USER
. Outras compinações de extensão-driver
usam COM_PING
no uso inicial de uma
conexão persistente.