1
0
mirror of https://github.com/php/doc-ru.git synced 2026-03-23 23:32:16 +01:00
Files
archived-doc-ru/reference/mysqlnd/overview.xml
2026-01-19 03:26:52 +00:00

143 lines
8.3 KiB
XML
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?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.overview">
<title>Обзор</title>
<simpara>
<emphasis role="bold">Чем он не является</emphasis>
</simpara>
<simpara>
Хотя встроенный драйвер MySQL написан как модуль PHP, важно понимать,
что он не предоставляет программисту PHP нового API. API к базе
данных MySQL для программиста предоставляются модулями MySQL,
<literal>mysqli</literal> и PDO MYSQL. Эти модули могут использовать
возможности встроенного драйвера MySQL для общения с сервером MySQL.
Таким образом, вы не должны думать о встроенном драйвере MySQL как об API.
</simpara>
<simpara>
<emphasis role="bold">Зачем его использовать?</emphasis>
</simpara>
<simpara>
Использование встроенного драйвера MySQL даёт некоторые плюсы
относительно клиентской библиотеки MySQL.
</simpara>
<simpara>
Более старая клиентская библиотека MySQL была написана MySQL AB (сейчас Oracle
Corporation) и выпускалась под лицензией MySQL. В конечном итоге это привело
к тому, что поддержка MySQL в PHP была по умолчанию выключена.
С другой стороны, встроенный драйвер MySQL был разработан как часть
проекта PHP, и выпущен под лицензией PHP. Это снимает вопросы с
лицензированием, бывшие проблемными в прошлом.
</simpara>
<simpara>
Также, в прошлом вам требовалось собирать модули, работающие с базой
данных MySQL, рядом с клиентской библиотекой MySQL. Обычно это означало,
что на машине, на которой вы разрабатывали PHP-код, требовался установленный
MySQL. К тому же, когда PHP-приложение работало, модули, работающие
с MySQL, могли обращаться к клиентской библиотеке MySQL во время работы,
так что её файл должен был быть установлен в вашей системе.
Со встроенным драйвером MySQL эта проблема исчезла, поскольку он является
частью стандартного дистрибутива. Таким образом, вам не потребуется
установленный MySQL, чтобы собирать PHP или использовать работающие
с базой данных PHP-приложения.
</simpara>
<simpara>
Поскольку встроенный драйвер MySQL написан как модуль PHP, он
тесно связан с работой PHP. Это приводит к приросту эффективности, особенно
в плане использования оперативной памяти, поскольку драйвер использует
систему управления памятью PHP. Он также поддерживает настройки лимита
памяти PHP. Использование встроенного драйвера MySQL приводит к сопоставимой
или даже лучшей производительности, чем в случае клиентской библиотеки MySQL,
поскольку всегда гарантируется наиболее эффективное использование памяти.
Одним из примеров эффективности работы с памятью является то, что при использовании
клиентской библиотеки MySQL каждая строка хранится в памяти дважды, тогда как
в случае встроенного драйвера MySQL каждая строка хранится в памяти только один раз.
</simpara>
<note>
<title>Контроль использования памяти</title>
<simpara>
Так как встроенный драйвер MySQL использует систему контроля памяти PHP,
используемая им память может быть отслежена с помощью функции <function>memory_get_usage</function>.
Это нельзя сделать с помощью libmysqlclient, так как он использует функцию языка Си malloc().
</simpara>
</note>
<simpara>
<emphasis role="bold">Особые возможности</emphasis>
</simpara>
<simpara>
Встроенный драйвер MySQL также предоставляет некоторые особые возможности,
недоступные при использовании расширениями клиентской библиотеки MySQL.
Список этих возможностей приведён ниже:
</simpara>
<itemizedlist>
<listitem>
<simpara>
Улучшены постоянные соединения
</simpara>
</listitem>
<listitem>
<simpara>
Особая функция <function>mysqli_fetch_all</function>
</simpara>
</listitem>
<listitem>
<simpara>
Вызов статистики производительности:
<function>mysqli_get_client_stats</function>,
<function>mysqli_get_connection_stats</function>
</simpara>
</listitem>
</itemizedlist>
<simpara>
Статистика производительности может быть очень полезна для нахождения
узких мест в производительности.
</simpara>
<simpara>
Встроенный драйвер MySQL также поддерживает постоянные соединения
при использовании модуля <literal>mysqli</literal>.
</simpara>
<simpara>
<emphasis role="bold">Поддержка SSL</emphasis>
</simpara>
<simpara>
Встроенный драйвер MySQL поддерживает SSL.
</simpara>
<simpara>
<emphasis role="bold">Поддержка протокола с использованием сжатия</emphasis>
</simpara>
<simpara>
Встроенный драйвер MySQL поддерживает клиент-серверный
протокол с использованием сжатия.
Модули, например, <literal>ext/mysql</literal> или <literal>ext/mysqli</literal>,
настроенные на использование встроенного драйвера MySQL, могут также воспользоваться
этой возможностью. Обратите внимание, что <literal>PDO_MYSQL</literal> <emphasis>НЕ</emphasis>
поддерживает сжатие при использовании совместно с mysqlnd.
</simpara>
<simpara>
<emphasis role="bold">Поддержка именованных каналов</emphasis>
</simpara>
<simpara>
Именованные каналы можно использовать для подключения в средах Windows.
</simpara>
</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
-->