MySQL Нативен Драјвер API за приклучоци
Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.
MySQL Нативен Драјвер API за приклучоци
Референца за `mysqlnd.plugin.php` со подобрена типографија и навигација.
MySQL Нативен Драјвер API за приклучоци
Содржина
- Споредба на mysqlnd приклучоци со MySQL Proxy
- Добивање на mysqlnd API за приклучоци
- Архитектура на MySQL Нативен Драјвер за приклучоци
- mysqlnd API за приклучоци
- Започнување со градење на mysqlnd приклучок
The MySQL Native Driver Plugin API is a feature of MySQL Native Driver, or mysqlnd. Mysqlnd
MySQL Native Driver Plugin API е функција на MySQL Native Driver, или Mysqlnd приклучоците работат во слојот помеѓу PHP апликациите и MySQL серверот. Ова е споредливо со MySQL Proxy. MySQL Proxy работи на слој помеѓу која било MySQL клиентска апликација, на пример, PHP апликација и, MySQL серверот. mysqlnd приклучоците можат да преземат типични задачи на MySQL Proxy како што се балансирање на оптоварување, следење и оптимизации на перформансите. Поради различната архитектура и локација,
А mysqlnd приклучоците немаат некои од недостатоците на MySQL Proxy. На пример, со приклучоци, нема единствена точка на откажување, нема посветен прокси сервер за распоредување и нема нов програмски јазик за учење (Lua). mysqlndприклучок може да се смета како проширување на
mysqlnd . Приклучоците можат да пресретнат мнозинство од mysqlnd
функциите. Функциите се повикуваат од PHP MySQL екстензиите како што се
ext/mysql, ext/mysqliПрепорачаниот начин за избегнување на SQL инјекција е со врзување на сите податоци преку подготвени изрази. Користењето на параметризирани прашања не е доволно за целосно избегнување на SQL инјекција, но тоа е најлесниот и најбезбедниот начин за обезбедување влез во SQL изразите. Сите динамични литерали на податоци во
PDO_MYSQL. Како резултат на тоа, можно е
mysqlnd приклучок да пресретне сите повици направени до овие екстензии од клиентската апликација.
или слична функција беше повикана пред да врати било која друга константа. Достапно од cURL 7.9.6. mysqlnd повиците на функциите исто така можат да бидат пресретнати или заменети. Нема ограничувања за манипулирање со
mysqlnd внатрешните табели со функции. Можно е да се постави така што кога одредени mysqlnd
функции се повикуваат од екстензиите што користат
mysqlnd, повикот се насочува кон соодветната функција во mysqlnd приклучокот. Способноста за манипулирање со mysqlnd внатрешните табели со функции на овој начин овозможува максимална флексибилност за приклучоците.
Mysqlnd приклучоците се всушност PHP Екстензии, напишани на C, кои ја користат mysqlnd API (што е вградено во MySQL Native Driver, mysqlnd). Приклучоците можат да бидат направени 100% транспарентни за PHP апликациите. Не се потребни промени во апликацијата бидејќи приклучоците работат на различен слој.
mysqlnd приклучокот може да се смета како да работи во слој под mysqlnd.
Следниов список претставува некои можни примени на
mysqlnd plugins.
-
Балансирање на оптоварување
- Разделување на читање/запишување. Пример за ова е PECL/mysqlnd_ms (Master Slave) екстензијата. Оваа екстензија ги разделува прашањата за читање/запишување за поставување на репликација.
- Откажување
- Round-Robin, најмалку оптоварен
-
Надгледување
- Запишување прашања
- Анализа на прашања
- Ревизија на прашања. Пример за ова е PECL/mysqlnd_sip (SQL Injection Protection) екстензијата. Оваа екстензија ги проверува прашањата и ги извршува само оние што се дозволени според сет на правила.
-
Оваа функција е достапна кога PHP е поврзан со библиотеки на Oracle Database од верзија 10
- Кеширање. Пример за ова е PECL/mysqlnd_qc (Query Cache) екстензијата.
- Ограничување
- Шарање. Пример за ова е PECL/mysqlnd_mc (Multi Connect) екстензијата. Оваа екстензија ќе се обиде да го подели SELECT исказот на n-делови, користејќи SELECT ... LIMIT part_1, SELECT LIMIT part_n. Ги испраќа прашањата до различни MySQL сервери и ги спојува резултатите на клиентот.
Достапни приклучоци за MySQL Native Driver
Достапни се голем број приклучоци за mysqlnd. Тие вклучуваат:
- PECL/mysqlnd_mc - Приклучок за повеќе конекции. - Приклучок Master Slave. - Приклучок за кеш на прашања. - Приклучок за кеш на рачка за подготвени искази. - Приклучок за заштита од SQL инјекции. - Приклучок за кориснички рачки.
- PECL/mysqlnd_ms - Master Slave plugin.
- PECL/mysqlnd_qc - Query Cache plugin.
- PECL/mysqlnd_pscache - Prepared Statement Handle Cache plugin.
- PECL/mysqlnd_sip - SQL Injection Protection plugin.
- PECL/mysqlnd_uh - User Handler plugin.