Огляд
Чим він не є
Хоча вбудований драйвер 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 використовує систему контролю пам'яті PHP, пам'ять, що використовується ним, може бути відстежена за допомогою функції memory_get_usage(). Це не можна зробити за допомогою libmysqlclient, тому що він використовує функцію мови Си malloc().
Особливі можливості
Вбудований драйвер MySQL також надає деякі особливі можливості, недоступні при використанні розширення клієнтської бібліотеки MySQL. Список цих можливостей наведено нижче:
-
Поліпшено постійні з'єднання
-
Особлива функціяmysqli_fetch_all()
-
Виклик статистики продуктивності:mysqli_get_client_stats() mysqli_get_connection_stats()
Статистика продуктивності може бути дуже корисною для знаходження вузьких місць у продуктивності.
Вбудований драйвер MySQL також підтримує постійні з'єднання під час використання модуля mysqli
Підтримка SSL
Вбудований драйвер MySQL підтримує SSL.
Підтримка протоколу за допомогою стиснення
Вбудований драйвер MySQL підтримує клієнт-серверний протокол із використанням стиснення. Модулі, наприклад, ext/mysql
илиext/mysqli
, налаштовані використання вбудованого драйвера MySQL, можуть також скористатися цією можливістю. Зверніть увагу, що PDO_MYSQL
НЕ підтримує стиск при використанні спільно з mysqlnd.
Підтримка іменованих каналів
Іменовані канали можна використовувати для підключення до середовища Windows.