Использование постоянных соединений
Если mysqli
используется с mysqlnd
,\
при создании постоянного соединения оно генерирует на сервере запрос
COM_CHANGE_USER
(mysql_change_user()
).
Это гарантирует, что при подключении будет повторно произведена авторизация.
Поскольку из-за вызовов COM_CHANGE_USER
увеличиваются
накладные расходы, возможно отключить такое поведение во время компиляции.
В таком случае повторное использование постоянного соединения будет генерировать
вызов COM_PING
(mysql_ping
), для проверки
возможности повторного использования соединения.
Генерация вызова COM_CHANGE_USER
может быть отключена
флагом компиляции MYSQLI_NO_CHANGE_USER_ON_PCONNECT
.
Например:
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
Или альтернативный вариант:
shell# export CFLAGS="-DMYSQLI_NO_CHANGE_USER_ON_PCONNECT" shell# configure --whatever-option shell# make clean shell# make
Обратите внимание, что только mysqli
совместно с mysqlnd
используют COM_CHANGE_USER
. Остальные комбинации
модуль-драйвер используют COM_PING
при первоначальном использовании постоянного соединения.