mirror of
https://github.com/php/doc-ru.git
synced 2026-03-23 23:32:16 +01:00
457 lines
22 KiB
XML
457 lines
22 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
||
<!-- EN-Revision: 9598935f21bc472f22383fb989625f0b22785331 Maintainer: das Status: ready -->
|
||
<!-- Reviewed: no -->
|
||
<chapter xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="mysqlnd.config">
|
||
|
||
&reftitle.runtime;
|
||
&extension.runtime;
|
||
|
||
<para>
|
||
<table xml:id="mysqlnd.config.options">
|
||
<title>Параметры конфигурации встроенного драйвера MySQL</title>
|
||
<tgroup cols="4">
|
||
<thead>
|
||
<row>
|
||
<entry>&Name;</entry>
|
||
<entry>&Default;</entry>
|
||
<entry>&Changeable;</entry>
|
||
<entry>&Changelog;</entry>
|
||
</row>
|
||
</thead>
|
||
<tbody xml:id="mysqlnd.config.options.list">
|
||
<row>
|
||
<entry><link linkend="ini.mysqlnd.collect-statistics">mysqlnd.collect_statistics</link></entry>
|
||
<entry>"1"</entry>
|
||
<entry><constant>INI_SYSTEM</constant></entry>
|
||
<entry/>
|
||
</row>
|
||
<row>
|
||
<entry><link linkend="ini.mysqlnd.collect-memory-statistics">mysqlnd.collect_memory_statistics</link></entry>
|
||
<entry>"0"</entry>
|
||
<entry><constant>INI_SYSTEM</constant></entry>
|
||
<entry/>
|
||
</row>
|
||
<row>
|
||
<entry><link linkend="ini.mysqlnd.debug">mysqlnd.debug</link></entry>
|
||
<entry>""</entry>
|
||
<entry><constant>INI_SYSTEM</constant></entry>
|
||
<entry/>
|
||
</row>
|
||
<row>
|
||
<entry><link linkend="ini.mysqlnd.log-mask">mysqlnd.log_mask</link></entry>
|
||
<entry>0</entry>
|
||
<entry><constant>INI_ALL</constant></entry>
|
||
<entry/>
|
||
</row>
|
||
<row>
|
||
<entry><link linkend="ini.mysqlnd.mempool-default-size">mysqlnd.mempool_default_size</link></entry>
|
||
<entry>16000</entry>
|
||
<entry><constant>INI_ALL</constant></entry>
|
||
<entry/>
|
||
</row>
|
||
<row>
|
||
<entry><link linkend="ini.mysqlnd.net-read-timeout">mysqlnd.net_read_timeout</link></entry>
|
||
<entry>""86400""</entry>
|
||
<entry><constant>INI_ALL</constant></entry>
|
||
<entry>До PHP 7.2.0 значением по умолчанию "31536000", а местом изменения было <constant>INI_SYSTEM</constant></entry>
|
||
</row>
|
||
<row>
|
||
<entry><link linkend="ini.mysqlnd.net-cmd-buffer-size">mysqlnd.net_cmd_buffer_size</link></entry>
|
||
<entry>5.3.0 — "2048", 5.3.1 — "4096"</entry>
|
||
<entry><constant>INI_SYSTEM</constant></entry>
|
||
<entry/>
|
||
</row>
|
||
<row>
|
||
<entry><link linkend="ini.mysqlnd.net-read-buffer-size">mysqlnd.net_read_buffer_size</link></entry>
|
||
<entry>"32768"</entry>
|
||
<entry><constant>INI_SYSTEM</constant></entry>
|
||
<entry/>
|
||
</row>
|
||
<row>
|
||
<entry><link linkend="ini.mysqlnd.sha256-server-public-key">mysqlnd.sha256_server_public_key</link></entry>
|
||
<entry>""</entry>
|
||
<entry><constant>INI_PERDIR</constant></entry>
|
||
<entry/>
|
||
</row>
|
||
<row>
|
||
<entry><link linkend="ini.mysqlnd.trace-alloc">mysqlnd.trace_alloc</link></entry>
|
||
<entry>""</entry>
|
||
<entry><constant>INI_SYSTEM</constant></entry>
|
||
<entry/>
|
||
</row>
|
||
<row>
|
||
<entry><link linkend="ini.mysqlnd.fetch_data_copy">mysqlnd.fetch_data_copy</link></entry>
|
||
<entry>0</entry>
|
||
<entry><constant>INI_ALL</constant></entry>
|
||
<entry>Удалено с PHP 8.1.0</entry>
|
||
</row>
|
||
</tbody>
|
||
</tgroup>
|
||
</table>
|
||
&ini.php.constants;
|
||
</para>
|
||
|
||
&ini.descriptions.title;
|
||
|
||
<variablelist>
|
||
<varlistentry xml:id="ini.mysqlnd.collect-statistics">
|
||
<term>
|
||
<parameter>mysqlnd.collect_statistics</parameter>
|
||
<type>bool</type>
|
||
</term>
|
||
<listitem>
|
||
<simpara>
|
||
Включает сбор различной статистики клиента, доступ к которой можно
|
||
получить с помощью <function>mysqli_get_client_stats</function>,
|
||
<function>mysqli_get_connection_stats</function>,
|
||
и которая отображается
|
||
в разделе <literal>mysqlnd</literal> вывода функции
|
||
<function>phpinfo</function>.
|
||
</simpara>
|
||
<simpara>
|
||
Этот параметр конфигурации включает всю
|
||
<link linkend="mysqlnd.stats">статистику встроенного драйвера
|
||
MySQL</link>, кроме относящейся к работе с оперативной памятью.
|
||
</simpara>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry xml:id="ini.mysqlnd.collect-memory-statistics">
|
||
<term>
|
||
<parameter>mysqlnd.collect_memory_statistics</parameter>
|
||
<type>bool</type>
|
||
</term>
|
||
<listitem>
|
||
<simpara>
|
||
Включает сбор различной статистики оперативной памяти, доступ к
|
||
которой можно получить с помощью <function>mysqli_get_client_stats</function>,
|
||
<function>mysqli_get_connection_stats</function>,
|
||
и которая отображается
|
||
в разделе <literal>mysqlnd</literal> вывода функции
|
||
<function>phpinfo</function>.
|
||
</simpara>
|
||
<simpara>
|
||
Этот параметр конфигурации включает всю статистику, относящуюся к
|
||
работе с оперативной памятью, в общий набор данных
|
||
<link linkend="mysqlnd.stats">статистики встроенного драйвера MySQL</link>.
|
||
</simpara>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry xml:id="ini.mysqlnd.debug">
|
||
<term>
|
||
<parameter>mysqlnd.debug</parameter> <type>string</type>
|
||
</term>
|
||
<listitem>
|
||
<simpara>
|
||
Записывает команды из всех модулей, использующих
|
||
<literal>mysqlnd</literal>, в указанный файл с логами.
|
||
</simpara>
|
||
<simpara>
|
||
Формат параметра следующий: <literal>mysqlnd.debug =
|
||
"option1[,parameter_option1][:option2[,parameter_option2]]"</literal>.
|
||
</simpara>
|
||
<simpara>
|
||
Возможны нижеуказанные значения для строки форматирования:
|
||
</simpara>
|
||
<itemizedlist>
|
||
<listitem>
|
||
<simpara>
|
||
A[,file] - добавляет вывод трассировки в указанный файл. Также
|
||
каждый раз проверяет успешность записи данных. Это реализовано
|
||
путём закрытия и повторного открытия файла (что достаточно медленно).
|
||
Даёт гарантию целостности файла с логами в случае возникновения ошибки приложения.
|
||
</simpara>
|
||
</listitem>
|
||
<listitem>
|
||
<simpara>
|
||
a[,file] - добавляет вывод трассировки в указанный файл.
|
||
</simpara>
|
||
</listitem>
|
||
<listitem>
|
||
<simpara>
|
||
d - Включает вывод из макроса DBUG_<N> для текущего состояния.
|
||
Может быть дополнено списком ключевых слов, чтобы выбрать вывод только
|
||
содержащего эти ключевые слова макросов DBUG. Пустой список ключевых слов
|
||
подразумевает вывод всех для макросов.
|
||
</simpara>
|
||
</listitem>
|
||
<listitem>
|
||
<simpara>
|
||
f[,functions] - ограничивает действия отладчика указанным списком функций.
|
||
Пустой список функций подразумевает выбор всех функций.
|
||
</simpara>
|
||
</listitem>
|
||
<listitem>
|
||
<simpara>
|
||
F - помечает вывод каждой строчки отладчика названием исходного файла,
|
||
содержащего код, вызвавший вывод.
|
||
</simpara>
|
||
</listitem>
|
||
<listitem>
|
||
<simpara>
|
||
i - помечает вывод каждой строчки отладчика PID текущего процесса.
|
||
</simpara>
|
||
</listitem>
|
||
<listitem>
|
||
<simpara>
|
||
L - помечает вывод каждой строчки отладчика названием исходного файла,
|
||
вызвавшего вывод, и номером строки в ней.
|
||
</simpara>
|
||
</listitem>
|
||
<listitem>
|
||
<simpara>
|
||
n - помечает вывод каждой строчки отладчика уровнем вложенности
|
||
текущей функции.
|
||
</simpara>
|
||
</listitem>
|
||
<listitem>
|
||
<simpara>
|
||
o[,file] - сходно с a[,file], но перезаписывает старый файл, а не
|
||
дописывает его.
|
||
</simpara>
|
||
</listitem>
|
||
<listitem>
|
||
<simpara>
|
||
O[,file] - сходно с A[,file] но перезаписывает старый файл, а не
|
||
дописывает его.
|
||
</simpara>
|
||
</listitem>
|
||
<listitem>
|
||
<simpara>
|
||
t[,N] - включает контроль функций во время трассировки.
|
||
Максимальный уровень вложенности определён N и по умолчанию равен 200.
|
||
</simpara>
|
||
</listitem>
|
||
<listitem>
|
||
<simpara>
|
||
x - этот параметр активирует профилирование.
|
||
</simpara>
|
||
</listitem>
|
||
<listitem>
|
||
<simpara>
|
||
m - отслеживать вызовы, связанные с выделениями и высвобождением памяти.
|
||
</simpara>
|
||
</listitem>
|
||
</itemizedlist>
|
||
<simpara>
|
||
Пример:
|
||
</simpara>
|
||
<programlisting>
|
||
<![CDATA[
|
||
d:t:x:O,/tmp/mysqlnd.trace
|
||
]]>
|
||
</programlisting>
|
||
<note>
|
||
<simpara>
|
||
Функция доступна только в отладочной сборке PHP.
|
||
</simpara>
|
||
</note>
|
||
<simpara/>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry xml:id="ini.mysqlnd.log-mask">
|
||
<term>
|
||
<parameter>mysqlnd.log_mask</parameter>
|
||
<type>int</type>
|
||
</term>
|
||
<listitem>
|
||
<simpara>
|
||
Определяет, какие запросы будут журналироваться. Значение по умолчанию - 0, что отключает журналирование.
|
||
Значение параметра - только целое число, константы PHP использовать нельзя. Например, при значении
|
||
48 (16 + 32) в журнал будут записываться медленные запросы, которые либо используют неподходящие индексы
|
||
(SERVER_QUERY_NO_GOOD_INDEX_USED = 16), либо не используют их вообще SERVER_QUERY_NO_INDEX_USED = 32).
|
||
При значении 2043 (1 + 2 + 8 + ... + 1024) в журнал будут записываться все типы медленных запросов.
|
||
</simpara>
|
||
<simpara>
|
||
Используются следующие типы запросов: 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, and SERVER_QUERY_WAS_SLOW=1024.
|
||
</simpara>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry xml:id="ini.mysqlnd.mempool-default-size">
|
||
<term>
|
||
<parameter>mysqlnd.mempool_default_size</parameter>
|
||
<type>int</type>
|
||
</term>
|
||
<listitem>
|
||
<simpara>
|
||
Default size of the mysqlnd memory pool, which is used by result sets.
|
||
</simpara>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry xml:id="ini.mysqlnd.net-read-timeout">
|
||
<term>
|
||
<parameter>mysqlnd.net_read_timeout</parameter>
|
||
<type>int</type>
|
||
</term>
|
||
<listitem>
|
||
<simpara>
|
||
<literal>mysqlnd</literal> и клиентская библиотека MySQL,
|
||
<literal>libmysqlclient</literal>, используют разные сетевые API.
|
||
<literal>mysqlnd</literal> использует потоки PHP, тогда как
|
||
<literal>libmysqlclient</literal> - собственную обёртку над сетевыми вызовами
|
||
операционной системы. В PHP по умолчанию выставлено 60-секундное
|
||
время ожидания потоков. Этот параметр выставляется в
|
||
<filename>php.ini</filename> директивой <literal>default_socket_timeout</literal>.
|
||
По умолчанию это относится ко всем потокам, которым не установлено другое значение времени ожидания.
|
||
<literal>mysqlnd</literal> не устанавливал других значений, поэтому
|
||
подключения долго выполняющихся запросов могут быть отключены после
|
||
<literal>default_socket_timeout</literal> секунд с ошибкой
|
||
<quote>2006 - MySQL Server has gone away</quote>. Клиентская библиотека MySQL
|
||
устанавливает время ожидания по умолчанию равное 24 * 3600 секундам (1 день)
|
||
и ждёт возникновения другого времени ожидания, такого как время ожидания TCP/IP.
|
||
Теперь <literal>mysqlnd</literal> использует такой же очень долгое время ожидания.
|
||
Это значение можно изменить через новую директиву <filename>php.ini</filename> -
|
||
<literal>mysqlnd.net_read_timeout</literal>.
|
||
<literal>mysqlnd.net_read_timeout</literal> будет использоваться любым
|
||
модулем (<literal>ext/mysql</literal>,
|
||
<literal>ext/mysqli</literal>, <literal>PDO_MySQL</literal>), использующим
|
||
<literal>mysqlnd</literal>. <literal>mysqlnd</literal> указывает
|
||
потокам PHP использовать <literal>mysqlnd.net_read_timeout</literal>.
|
||
Пожалуйста, обратите внимание, что могут быть небольшие различия между
|
||
<literal>MYSQL_OPT_READ_TIMEOUT</literal> в клиентской библиотеке MySQL
|
||
и потоках PHP, например, судя по документации, <literal>MYSQL_OPT_READ_TIMEOUT</literal> работает
|
||
только для TCP/IP-подключений и, вплоть до MySQL 5.1.2, только под
|
||
Windows. Потоки PHP могут не иметь подобных ограничений. В случае сомнений
|
||
просьба сверяться с документацией потоков.
|
||
</simpara>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry xml:id="ini.mysqlnd.net-cmd-buffer-size">
|
||
<term>
|
||
<parameter>mysqlnd.net_cmd_buffer_size</parameter>
|
||
<type>int</type>
|
||
</term>
|
||
<listitem>
|
||
<simpara>
|
||
<literal>mysqlnd</literal> резервирует внутренний командно-сетевой
|
||
буфер размером <literal>mysqlnd.net_cmd_buffer_size</literal> (в
|
||
<filename>php.ini</filename>) байт для каждого соединения. Если команда
|
||
клиент-серверного протокола MySQL, например,
|
||
<literal>COM_QUERY</literal> (<quote>обычный</quote> запрос), не
|
||
умещается в буфер, <literal>mysqlnd</literal> увеличит буфер до размера,
|
||
необходимого для отправки команды.
|
||
Каждый раз, когда буфер был увеличен, переменная статистики <literal>command_buffer_too_small</literal>
|
||
будет увеличена на один.
|
||
</simpara>
|
||
<simpara>
|
||
Если <literal>mysqlnd</literal> приходится увеличивать буфер сверх его
|
||
заданного размера в <literal>mysqlnd.net_cmd_buffer_size</literal> байт
|
||
для большинства соединений, вам следует обдумать необходимость увеличения
|
||
размера по умолчанию, чтобы избежать повторных резерваций буфера.
|
||
</simpara>
|
||
<simpara>
|
||
Размер буфера по умолчанию составляет 4096 байт, что является наименьшим возможным значением.
|
||
</simpara>
|
||
<simpara>
|
||
Это значение также может быть установлено функцией
|
||
<literal>mysqli_options(link,
|
||
MYSQLI_OPT_NET_CMD_BUFFER_SIZE, size)</literal>.
|
||
</simpara>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry xml:id="ini.mysqlnd.net-read-buffer-size">
|
||
<term>
|
||
<parameter>mysqlnd.net_read_buffer_size</parameter>
|
||
<type>int</type>
|
||
</term>
|
||
<listitem>
|
||
<simpara>
|
||
Максимальный размер части данных при считывании, в байтах, при обработке
|
||
тела командного пакета MySQL. Клиент-серверный протокол MySQL оборачивает
|
||
все свои команды в пакеты. Пакет состоит из небольшого заголовка и тела,
|
||
содержащего непосредственно данные команды. Размер тела закодирован в заголовке.
|
||
<literal>mysqlnd</literal> считывает тело частями по
|
||
<literal>MIN(header.size, mysqlnd.net_read_buffer_size)</literal>
|
||
байт. Если размер тела пакета больше, чем
|
||
<literal>mysqlnd.net_read_buffer_size</literal> байт,
|
||
<literal>mysqlnd</literal> будет вызывать <literal>read()</literal>
|
||
несколько раз.
|
||
</simpara>
|
||
<simpara>
|
||
Это значение также может быть установлено функцией
|
||
<literal>mysqli_options(link,
|
||
MYSQLI_OPT_NET_READ_BUFFER_SIZE, size)</literal>.
|
||
</simpara>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry xml:id="ini.mysqlnd.sha256-server-public-key">
|
||
<term>
|
||
<parameter>mysqlnd.sha256_server_public_key</parameter>
|
||
<type>string</type>
|
||
</term>
|
||
<listitem>
|
||
<simpara>
|
||
Данная опция относится к плагину аутентификации SHA-256 и содержит путь к файлу
|
||
с публичным ключом RSA MySQL-сервера..
|
||
</simpara>
|
||
<simpara>
|
||
Клиент может как не указывать публичный ключ RSA, указать его с помощью
|
||
данной опции, либо установить ключ во время выполнения с помощью функции
|
||
<function>mysqli_options</function>. Если публичный ключ RSA не был передан
|
||
клиентом, то ключ будет получен в результате стандартной процедуры
|
||
аутентификации плагина аутентификации SHA-256.
|
||
</simpara>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry xml:id="ini.mysqlnd.trace-alloc">
|
||
<term>
|
||
<parameter>mysqlnd.trace_alloc</parameter>
|
||
<type>string</type>
|
||
</term>
|
||
<listitem>
|
||
<simpara>
|
||
</simpara>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry xml:id="ini.mysqlnd.fetch_data_copy">
|
||
<term>
|
||
<parameter>mysqlnd.fetch_data_copy</parameter>
|
||
<type>int</type>
|
||
</term>
|
||
<listitem>
|
||
<simpara>
|
||
Принуждает копировать наборы из внутреннего буфера наборов в PHP переменные
|
||
вместо использования логики с ссылками и "копированием при записи" по умолчанию.
|
||
Смотрите <link linkend="mysqlnd.memory">реализация управления памятью</link>
|
||
для получения большей информации.
|
||
</simpara>
|
||
<simpara>
|
||
Копирование результирующих наборов вместо PHP переменных ссылающихся на них
|
||
позволяют выделять память для PHP переменных заранее.
|
||
В зависимости от пользовательского кода, реальных запросов к базе данных и
|
||
размеров их результатов, можно снизить потребление памяти mysqlnd.
|
||
</simpara>
|
||
<simpara>
|
||
Не применяйте, если используется PDO_MySQL. В PDO_MySQL ещё не добавлена поддержка
|
||
этого нового режима.
|
||
</simpara>
|
||
<note>
|
||
<simpara>Удалено с PHP 8.1.0</simpara>
|
||
</note>
|
||
</listitem>
|
||
</varlistentry>
|
||
</variablelist>
|
||
</chapter>
|
||
<!-- Keep this comment at the end of the file
|
||
Local variables:
|
||
mode: sgml
|
||
sgml-omittag:t
|
||
sgml-shorttag:t
|
||
sgml-minimize-attributes:nil
|
||
sgml-always-quote-attributes:t
|
||
sgml-indent-step:1
|
||
sgml-indent-data:t
|
||
indent-tabs-mode:nil
|
||
sgml-parent-document:nil
|
||
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
|
||
sgml-exposed-tags:nil
|
||
sgml-local-catalogs:nil
|
||
sgml-local-ecat-files:nil
|
||
End:
|
||
vim600: syn=xml fen fdm=syntax fdl=2 si
|
||
vim: et tw=78 syn=sgml
|
||
vi: ts=1 sw=1
|
||
-->
|