Spec-Zone .ru
спецификации, руководства, описания, API

22.9.5.3. Конфигурация времени выполнения

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_sizephp.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 процедур аутентификации Плагина Аутентификации.