Spec-Zone .ru
спецификации, руководства, описания, API
|
Copyright 1997-2012 PHP Documentation Group.
На поведение этих функций влияют настройки в php.ini
.
Таблица 22.63. MySQL Native Driver Configuration Options
Имя | Значение по умолчанию | Изменчивый | Журнал изменений |
---|---|---|---|
mysqlnd.collect_statistics | "1" | PHP_INI_SYSTEM | Доступный начиная с PHP 5.3.0. |
mysqlnd.collect_memory_statistics | "0" | PHP_INI_SYSTEM | Доступный начиная с PHP 5.3.0. |
mysqlnd.debug | "0" | PHP_INI_SYSTEM | Доступный начиная с PHP 5.3.0. |
mysqlnd.log_mask | 0 | PHP_INI_ALL | Доступный начиная с PHP 5.3.0 |
mysqlnd.mempool_default_size | 16000 | PHP_INI_ALL | Доступный начиная с PHP 5.3.3 |
mysqlnd.net_read_timeout | "31536000" | PHP_INI_SYSTEM | Доступный начиная с PHP 5.3.0. |
mysqlnd.net_cmd_buffer_size | 5.3.0 - "2048", 5.3.1 - "4096" | PHP_INI_SYSTEM | Доступный начиная с PHP 5.3.0. |
mysqlnd.net_read_buffer_size | "32768" | PHP_INI_SYSTEM | Доступный начиная с PHP 5.3.0. |
mysqlnd.sha256_server_public_key | "" | PHP_INI_PERDIR | Доступный начиная с PHP 5.5.0. |
Вот короткое объяснение конфигурационных директив.
mysqlnd.collect_statistics
булев Включает набору различной клиентской статистики, к которой можно получить доступ через mysqli_get_client_stats
, mysqli_get_connection_stats
, mysqli_get_cache_stats
в и показывают mysqlnd
раздел вывода phpinfo
Этот параметр конфигурации включает всей статистике MySQL Native Driver кроме тех, которые касаются управления памятью.
mysqlnd.collect_memory_statistics
булев
Включите набору различной статистики памяти, к которой можно получить доступ через mysqli_get_client_stats
, mysqli_get_connection_stats
, mysqli_get_cache_stats
в и показывают mysqlnd
раздел вывода phpinfo
Этот параметр конфигурации включает статистике управления памятью в пределах полного набора статистики MySQL Native Driver.
mysqlnd.debug
строка Передача записей от всего использования расширений mysqlnd
к указанному
файлу журнала.
Формат направляющего mysqlnd.debug = "option1[,parameter_option1][:option2[,parameter_option2]]"
.
Опции для строки формата следующие:
[, файл] - Добавляет вывод трассировки к указанному файлу. Также гарантирует, что данные пишутся после каждой записи. Это делается, закрываясь и вновь открывая файл трассировки (это является медленным). Это помогает гарантировать, что полный файл журнала должен приложение отказывать.
[, файл] - Добавляет вывод трассировки к указанному файлу.
d - Включает выводу от DBUG _ <N> макросы для текущего состояния. Может сопровождаться списком ключевых слов, который выбирает вывод только для макросов DBUG с тем ключевым словом. Пустой список ключевых слов подразумевает вывод для всех макросов.
f [функции] - Предельные действия отладчика к указанному списку функций. Пустой список функций подразумевает, что все функции выбираются.
F - Марки каждая выходная строка отладчика с именем исходного файла, содержащего макрос, вызывающий вывод.
i - Марки каждая выходная строка отладчика с PID текущего процесса.
L - Марки каждая выходная строка отладчика с именем номера строки исходного файла макроса, вызывающего вывод.
n - Марки каждая выходная строка отладчика с текущей функциональной глубиной вложения
o [файл] - Подобный [файл], но перезаписи старый файл, и не добавляет.
O [файл] - Подобный [файл], но перезаписи старый файл, и не добавляет.
t [N] - Включает функциональной трассировке потока управления. Максимальная глубина вложения определяется N, и значениями по умолчанию к 200.
x - Эта опция активирует профилирование.
Пример:
d:t:x:O,/tmp/mysqlnd.trace
Эта функция только доступна с отладочная сборка PHP. Работы над Microsoft Windows, используя отладочная сборка PHP и PHP были созданы, используя версию 9 Microsoft Visual C и выше.
mysqlnd.log_mask
целое число
Определяет, какие запросы будут зарегистрированы. Значение по умолчанию 0, который отключает журналирование. Определите использование целого числа, а не с константами PHP. Например, значение 48 (16 + 32) зарегистрирует медленные запросы, которые любое использование 'отрицательный результат индексирует' (SERVER_QUERY_NO_GOOD_INDEX_USED = 16) или не индексирует вообще (SERVER_QUERY_NO_INDEX_USED = 32). Значение 2043 (1 + 2 + 8 +... + 1024) зарегистрирует все медленные типы запроса.
Типы следующие: SERVER_STATUS_IN_TRANS=1, SERVER_STATUS_AUTOCOMMIT=2, SERVER_MORE_RESULTS_EXISTS=8, SERVER_QUERY_NO_GOOD_INDEX_USED=16, SERVER_QUERY_NO_INDEX_USED=32, SERVER_STATUS_CURSOR_EXISTS=64, SERVER_STATUS_LAST_ROW_SENT=128, SERVER_STATUS_DB_DROPPED=256, SERVER_STATUS_NO_BACKSLASH_ESCAPES=512, и SERVER_QUERY_WAS_SLOW=1024.
mysqlnd.mempool_default_size
целое число
Размер значения по умолчанию mysqlnd пула памяти, который используется наборами результатов.
mysqlnd.net_read_timeout
целое число
mysqlnd
и MySQL Client Library, libmysqlclient
используйте различные сетевые API. mysqlnd
использование потоки PHP, тогда как libmysqlclient
использует его
собственную обертку вокруг операционных вызовов сети уровня. PHP, по умолчанию, устанавливает тайм-аут
чтения 60-ых для потоков. Это устанавливается через php.ini
, default_socket_timeout
. Это значение по умолчанию применяется ко всем
потокам, которые не устанавливают никакое другое значение тайм-аута. mysqlnd
не устанавливает никакое другое значение, и поэтому соединения
долгих рабочих запросов могут быть разъединены после default_socket_timeout
секунды приводя к сообщению об ошибке "2006 - MySQL Server ушли".
MySQL Client Library устанавливает тайм-аут значения по умолчанию 365 * 24 * 3600 секунд (1 год) и
ожидает других тайм-аутов, чтобы произойти, такие как тайм-ауты TCP/IP. mysqlnd
теперь использует тот же самый очень длинный тайм-аут. Значение
конфигурируемо через новое php.ini
установка: mysqlnd.net_read_timeout
.
mysqlnd.net_read_timeout
привыкает любым расширением (ext/mysql
, ext/mysqli
, PDO_MySQL
) это использует mysqlnd
. mysqlnd
говорит Потокам PHP использовать mysqlnd.net_read_timeout
.
Пожалуйста, отметьте, что могут быть тонкие различия между MYSQL_OPT_READ_TIMEOUT
от MySQL Client Library и PHP Streams, например
MYSQL_OPT_READ_TIMEOUT
документируется, чтобы работать только на соединения
TCP/IP и, до MySQL 5.1.2, только для Windows. У потоков PHP, возможно, нет этого ограничения.
Пожалуйста, проверьте потоковую документацию, если в сомнении.
mysqlnd.net_cmd_buffer_size
долго mysqlnd
выделяет внутренний буфер команды/сети mysqlnd.net_cmd_buffer_size
(в php.ini
) байты для каждого соединения. Если команда протокола MySQL
Client Server, например, COM_QUERY
("нормальный" запрос), не вписывается в буфер, mysqlnd
вырастит буфер к размеру, требуемому для того, чтобы отправить
команду. Всякий раз, когда буфер расширяется для одного соединения, command_buffer_too_small
будет постепенно увеличен одним.
Если mysqlnd
должен вырастить буфер вне его начального размера mysqlnd.net_cmd_buffer_size
байты для почти каждого соединения, следует
полагать, что увеличение размера значения по умолчанию избегает перераспределений.
Размер буфера значения по умолчанию составляет 2048 байтов в PHP 5.3.0. В более поздних версиях
значение по умолчанию составляет 4096 байтов. Значение по умолчанию может измененный любой через
php.ini
установка mysqlnd.net_cmd_buffer_size
или использование mysqli_options(MYSQLI_OPT_NET_CMD_BUFFER_SIZE,
int size)
.
Рекомендуется, чтобы размер буфера был установлен в не менее чем 4096 байтов потому что mysqlnd
также использование это, читая определенный коммуникационный
пакет из MySQL. В PHP 5.3.0, mysqlnd
не будет выращивать буфер, если
MySQL отправит пакет, который больше чем текущий размер буфера. Как следствие, mysqlnd
неспособно декодировать пакет, и клиентское приложение
получит ошибку. Есть только две ситуации, когда пакет может быть больше чем 2048-байтовое значение
по умолчанию mysqlnd.net_cmd_buffer_size
в PHP 5.3.0: пакет
транспортирует очень длинное сообщение об ошибке, или пакет содержит метаданные столбца от COM_LIST_FIELD
(mysql_list_fields()
и
метаданные, прибывшие от строкового столбца с очень длинным значением по умолчанию (> 1900
байтов).
С PHP 5.3.2 mysqlnd не позволяет устанавливать буферы, меньшего размера чем 4096 байтов.
Значение может также быть установлено, используя mysqli_options(link,
MYSQLI_OPT_NET_CMD_BUFFER_SIZE, size)
.
mysqlnd.net_read_buffer_size
долго Максимальный размер блока чтения в байтах, читая тело пакета команды MySQL. MySQL клиент-серверный
протокол инкапсулирует все свои команды в пакетах. Пакеты состоят из маленького заголовка и тела с
фактической полезной нагрузкой. Размер тела кодируется в заголовке. mysqlnd
читает тело в блоках MIN(header.size, mysqlnd.net_read_buffer_size)
байты.
Если пакетное тело больше чем mysqlnd.net_read_buffer_size
байты, mysqlnd
должен вызвать read()
многократно.
Значение может также быть установлено, используя mysqli_options(link,
MYSQLI_OPT_NET_READ_BUFFER_SIZE, size)
.
mysqlnd.sha256_server_public_key
строка
SHA 256 Плагинов Аутентификации имел отношение. Файл с ключом RSA общественности сервера MySQL.
Клиенты могут или опустить устанавливать общедоступный ключ RSA, определять ключ через этот параметр
конфигурации PHP или устанавливать ключ при использовании времени выполнения mysqli_options
. Если не общедоступный файл ключей RSA будет дан
клиентом, то ключом обменяются как часть стандартного SHA 256 процедур аутентификации Плагина
Аутентификации.