Расширения mysqli, PDO_MySQL и mysql - всего лишь легковесные обертки над библиотеками написанными на языке C. Эти расширения могут использовать библиотеки mysqlnd и libmysqlclient. Выбор библиотеки необходимо сделать на этапе компиляции.
Библиотека mysqlnd является частью дистрибутива PHP начиная с версии 5.3.0. Она предоставляет такие возможности как ленивое соединение(lazy connections) и кеширование запросов. В библиотеке libmysqlclient данные возможности недоступны. Так что крайне рекомендуется использовать именно встроенную библиотеку mysqlnd. Для дополнительных сведений смотрите документацию mysqlnd.
Пример #1 Комманды конфигурирования для mysqlnd и libmysqlclient
//Рекомендованная, компилирует с mysqlnd $ ./configure --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-mysql=mysqlnd //Рекомендованная, компилирует с mysqlnd начиная с PHP 5.4 $ ./configure --with-mysqli --with-pdo-mysql --with-mysql //Не рекомендованная, компилирует с libmysqlclient $ ./configure --with-mysqli=/path/to/mysql_config --with-pdo-mysql=/path/to/mysql_config --with-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 | Двойная лицензия | 
| Статус разработки | Активный | Активный | 
| Жизненный цикл | Окончание не анонсировано | Окончание не анонсировано | 
| PHP 5.4 и выше; компилируется по умолчанию | Да | Нет | 
| PHP 5.3; компилируется по умолчанию | Нет | Да | 
| Поддержка протокола сжатия | Да (5.3.1+) | Да | 
| Поддержка SSL | Да (5.3.3+) | Да | 
| Поддержка именованных конвееров(named pipes) | Да (5.3.4+) | Да | 
| Неблокирующие, асинхронные запросы | Да | Нет | 
| Статистика производительности | Да | Нет | 
| LOAD LOCAL INFILE уважает директиву open_basedir | Да | нет | 
| Использует штатный менеджер памяти PHP (т.е., ограничения памяти PHP) | Да | Нет | 
| Возвращает числовые значения как значения с плавающей запятой(float) (COM_QUERY) | Да | нет | 
| Возвращает числовые значения как строки (string) (COM_QUERY) | Да | Да | 
| Поддержка плагинов | Да | Ограниченно | 
| Разделение Read/Write для репликации MySQL | Да, с плагином | Нет | 
| Балансировка нагрузки | Да, с плагином | Нет | 
| отказоустойчивость | Да, с плагином | нет | 
| Ленивые соединения | Да, с плагином | Нет | 
| Кеширование запросов | Да, с плагином | нет | 
| Прозрачная манипуляция запросами (т.е., auto-EXPLAIN или мониторинг) | Да, с плагином | Нет | 
| Автоматическое переподключение | нет | опционально |