If you're using named pipes under Windows, you should NOT use mysqlnd.
Tested with PHP 5.6.4, libmysqlclient gave me results of about 20ms on a page with 50 queries while mysqlnd was over 3000ms!
Модули mysqli и PDO_MySQL - всего лишь легковесные обёртки
над библиотеками написанными на языке C. Эти модули могут использовать
библиотеки mysqlnd и libmysqlclient
.
Выбор библиотеки необходимо сделать на этапе компиляции.
Библиотека mysqlnd является частью дистрибутива PHP. Она предоставляет такие возможности как ленивое соединение(lazy connections) и кеширование запросов. В библиотеке libmysqlclient данные возможности недоступны. Так что крайне рекомендуется использовать именно встроенную библиотеку mysqlnd. Для дополнительных сведений смотрите документацию mysqlnd.
Пример #1 Команды конфигурирования для mysqlnd и libmysqlclient
//Рекомендованная, компилирует с mysqlnd $ ./configure --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd //Рекомендованная, компилирует с mysqlnd $ ./configure --with-mysqli --with-pdo-mysql //Не рекомендованная, компилирует с libmysqlclient $ ./configure --with-mysqli=/path/to/mysql_config --with-pdo-mysql=/path/to/mysql_config
Сравнение возможностей библиотек
Рекомендуется использовать библиотеку mysqlnd, а не MySQL Client Server library (libmysqlclient). Обе библиотеки развиваются и поддерживаются производителями.
MySQL native driver (mysqlnd) | MySQL client server library (libmysqlclient ) |
|
---|---|---|
Часть дистрибутива PHP | Да | Нет |
Появилась в версии PHP | 5.3.0 | Нет данных |
Лицензия | PHP License 3.01 | Двойная лицензия |
Статус разработки | Активный | Активный |
Жизненный цикл | Окончание не анонсировано | Окончание не анонсировано |
Компилирование по умолчанию (для всех модулей MySQL) | Да | Нет |
Поддержка протокола сжатия | Да | Да |
Поддержка SSL | Да | Да |
Поддержка именованных конвейеров (named pipes) | Да | Да |
Неблокирующие, асинхронные запросы | Да | Нет |
Статистика производительности | Да | Нет |
LOAD LOCAL INFILE уважает директиву open_basedir | Да | нет |
Использует штатный менеджер памяти PHP (т.е., ограничения памяти PHP) | Да | Нет |
Возвращает числовые значения как значения с плавающей точкой(float) (COM_QUERY) | Да | нет |
Возвращает числовые значения как строки (string) (COM_QUERY) | Да | Да |
Поддержка плагинов | Да | Ограниченно |
Автоматическое переподключение | нет | опционально |
If you're using named pipes under Windows, you should NOT use mysqlnd.
Tested with PHP 5.6.4, libmysqlclient gave me results of about 20ms on a page with 50 queries while mysqlnd was over 3000ms!