Files
php-doc-ru/reference/mysqlnd/overview.xml
sergey bbae3e95e5 docs(ru): Review
git-svn-id: https://svn.php.net/repository/phpdoc/ru/trunk@348507 c90b9560-bf6c-de11-be94-00142212c4b1
2019-12-13 19:39:18 +00:00

144 lines
8.3 KiB
XML
Raw 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"?>
<!-- $Revision$ -->
<!-- EN-Revision: cd09fab47b40563cb8b2316d817efc973d991713 Maintainer: das Status: ready -->
<!-- Reviewed: yes Maintainer: sergey -->
<chapter xml:id="mysqlnd.overview" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>Обзор</title>
<para>
<emphasis role="bold">Чем он не является</emphasis>
</para>
<para>
Хотя встроенный драйвер MySQL написан как модуль PHP, важно понимать,
что он не предоставляет программисту PHP нового API. API к базе
данных MySQL для программиста предоставляются модулями MySQL,
<literal>mysqli</literal> и PDO MYSQL. Эти модули могут использовать
возможности встроенного драйвера MySQL для общения с сервером MySQL.
Таким образом, вы не должны думать о встроенном драйвере MySQL как об API.
</para>
<para>
<emphasis role="bold">Зачем его использовать?</emphasis>
</para>
<para>
Использование встроенного драйвера MySQL дает некоторые плюсы
относительно клиентской библиотеки MySQL.
</para>
<para>
Более старая клиентская библиотека MySQL была написана MySQL AB (сейчас Oracle
Corporation) и выпускалась под лицензией MySQL. В конечном итоге это привело
к тому, что поддержка MySQL в PHP была по умолчанию выключена.
С другой стороны, встроенный драйвер MySQL был разработан как часть
проекта PHP, и выпущен под лицензией PHP. Это снимает вопросы с
лицензированием, бывшие проблемными в прошлом.
</para>
<para>
Также, в прошлом вам требовалось собирать модули, работающие с базой
данных MySQL, рядом с клиентской библиотекой MySQL. Обычно это означало,
что на машине, на которой вы разрабатывали PHP-код, требовался установленный
MySQL. К тому же, когда PHP-приложение работало, модули, работающие
с MySQL, могли обращаться к клиентской библиотеке MySQL во время работы,
так что ее файл должен был быть установлен в вашей системе.
Со встроенным драйвером MySQL эта проблема исчезла, поскольку он является
частью стандартного дистрибутива. Таким образом, вам не потребуется
установленный MySQL, чтобы собирать PHP или использовать работающие
с базой данных PHP-приложения.
</para>
<para>
Поскольку встроенный драйвер MySQL написан как модуль PHP, он
тесно связан с работой PHP. Это приводит к приросту эффективности, особенно
в плане использования оперативной памяти, поскольку драйвер использует
систему управления памятью PHP. Он также поддерживает настройки лимита
памяти PHP. Использование встроенного драйвера MySQL приводит к сопоставимой
или даже лучшей производительности, чем в случае клиентской библиотеки MySQL,
поскольку всегда гарантируется наиболее эффективное использование памяти.
Одним из примеров эффективности работы с памятью является то, что при использовании
клиентской библиотеки MySQL каждая строка хранится в памяти дважды, тогда как
в случае встроенного драйвера MySQL каждая строка хранится в памяти только один раз.
</para>
<note>
<title>Контроль использования памяти</title>
<para>
Так как встроенный драйвер MySQL использует систему контроля памяти PHP,
используемая им память может быть отслежена с помощью функции <function>memory_get_usage</function>.
Это нельзя сделать с помощью libmysqlclient, так как он использует функцию языка Си malloc().
</para>
</note>
<para>
<emphasis role="bold">Особые возможности</emphasis>
</para>
<para>
Встроенный драйвер MySQL также предоставляет некоторые особые возможности,
недоступные при использовании расширениями клиентской библиотеки MySQL.
Список этих возможностей приведен ниже:
</para>
<itemizedlist>
<listitem>
<para>
Улучшены постоянные соединения
</para>
</listitem>
<listitem>
<para>
Особая функция <function>mysqli_fetch_all</function>
</para>
</listitem>
<listitem>
<para>
Вызов статистики производительности:
<function>mysqli_get_cache_stats</function>,
<function>mysqli_get_client_stats</function>,
<function>mysqli_get_connection_stats</function>
</para>
</listitem>
</itemizedlist>
<para>
Статистика производительности может быть очень полезна для нахождения
узких мест в производительности.
</para>
<para>
Встроенный драйвер MySQL также поддерживает постоянные соединения
при использовании модуля <literal>mysqli</literal>.
</para>
<para>
<emphasis role="bold">Поддержка SSL</emphasis>
</para>
<para>
Встроенный драйвер MySQL поддерживает SSL с версии PHP 5.3.3
</para>
<para>
<emphasis role="bold">Поддержка протокола с использованием сжатия</emphasis>
</para>
<para>
Начиная с PHP 5.3.2, встроенный драйвер MySQL поддерживает клиент-серверный
протокол с использованием сжатия. Этой поддержки нет в версиях 5.3.0 и 5.3.1.
Модули, например, <literal>ext/mysql</literal> или <literal>ext/mysqli</literal>,
настроенные на использование встроенного драйвера MySQL, могут также воспользоваться
этой возможностью. Обратите внимание, что <literal>PDO_MYSQL</literal> <emphasis>НЕ</emphasis>
поддерживает сжатие при использовании совместно с mysqlnd.
</para>
<para>
<emphasis role="bold">Поддержка именованных каналов</emphasis>
</para>
<para>
Поддержка именованных каналов для Windows была добавлена в PHP версии 5.4.0.
</para>
</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
-->