Обзор

Встроенный драйвер MySQL является заменой клиентской библиотеки MySQL (libmysql). Встроенный драйвер MySQL является частью официальной версии PHP начиная с 5.3.0.

Все расширения для работы с базой данных MySQL - MySQL, mysqli и PDO MYSQL - взаимодействуют с сервером MySQL. В прошлом это было реализовано через расширение, использующее возможности, предоставленные клиентской библиотекой MySQL. Расширения компилировались с поддержкой клиентской библиотеки MySQL, чтобы использовать ее клиент-серверный протокол.

С появлением встроенного драйвера MySQL появилась альтернатива, и расширения, работающие с MySQL, могут быть скомпилированы для использования встроенного драйвера MySQL вместо клиентской библиотеки MySQL.

Встроенный драйвер MySQL написан на C как расширение PHP.

Чем он не является

Хотя встроенный драйвер MySQL написан как расширение PHP, важно понимать, что он не предоставляет программисту PHP нового API. API к базе данных MySQL для программиста предоставляются расширениями MySQL, mysqli и PDO MYSQL. Эти расширения могут использовать возможности встроенного драйвера MySQL для общения с сервером MySQL. Таким образом, вы не должны думать о встроенном драйвере MySQL как об API.

Зачем его использовать?

Использование встроенного драйвера MySQL дает некоторые плюсы относительно клиентской библиотеки MySQL.

Более старая клиентская библиотека MySQL была написана MySQL AB (сейчас Oracle Corporation) и выпускалась под лицензией MySQL. В конечном итоге это привело к тому, что поддержка MySQL в PHP была по умолчанию выключена. С другой стороны, встроенный драйвер MySQL был разработан как часть проекта PHP, и выпущет под лицензией PHP. Это убирает вопросы с лицензированием, бывшие проблемными в прошлом.

Также, в прошлом вам требовалось собирать расширения, работающие с базой данных MySQL, рядом с клиентской библиотекой MySQL. Обычно это означало, что на машине, на которой вы разрабатывали PHP-код, требовался установленный MySQL. К тому же, когда PHP-приложение работало, расширения, работающие с MySQL, могли обращаться к клиентской библиотеке MySQL во время работы, так что ее файл должен был быть установлен в вашей системе. Со встроенным драйвером MySQL эта проблема исчезла, поскольку он является частью стандартного дистрибутива. Таким образом, вам не потребуется установленный MySQL, чтобы собирать PHP или использовать работающие с базой данных PHP-приложения.

Поскольку встроенный драйвер MySQL написан как расширение PHP, он тесно связан с работой PHP. Это приводит к приросту эффективности, особенно в плане использования оперативной памяти, поскольку драйвер использует систему управления памятью PHP. Он также поддерживает настройки лимита памяти PHP. Использование встроенного драйвера MySQL приводит к сопоставимой или даже лучшей производительности, чем в случае клиентской библиотеки MySQL, поскольку всегда гарантируется наиболее эффективное использование памяти. Одним из примеров эффективности работы с памятью является то, что при использовании клиентской библиотеки MySQL каждая строка хранится в памяти дважды, тогда как в случае встроенного драйвера MySQL каждая строка хранится в памяти только один раз.

Особые возможности

Встроенный драйвер MySQL также предоставляет некоторые особые возможности, недоступные при использовании расширениями клиентской библиотеки MySQL. Список этих возможностей приведен ниже:

Статистика производительности может быть очень полезна для нахождения узких мест в производительности.

Встроенный драйвер MySQL также поддерживает постоянные соединения при использовании расширения mysqli.

Поддержка SSL

Встроенный драйвер MySQL поддерживает SSL с версии PHP 5.3.3

Поддержка протокола с использованием сжатия

Начиная с PHP 5.3.2, встроенный драйвер MySQL поддерживает клиент-серверный протокол с использованием сжатия. Этой поддержки нет в версиях 5.3.0 и 5.3.1. Расширения, например ext/mysql или ext/mysqli, настроенные на использование встроенного драйвера MySQL, могут также воспользоваться этой возможностью. Обратите внимание, что PDO_MYSQL НЕ поддерживает сжатие при использовании совместно с mysqlnd.

Поддержка именованных каналов

Поддержка именованных каналов для Windows была добавлена в PHP версии 5.4.0.


Участник рейтинга Тэглайн 2010