Споредба на mysqlnd приклучоци со MySQL Proxy
Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.
Споредба на mysqlnd приклучоци со MySQL Proxy
Референца за `mysqlnd.plugin.mysql-proxy.php` со подобрена типографија и навигација.
Споредба на mysqlnd приклучоци со MySQL Proxy
Mysqlnd plugins and MySQL Proxy are different technologies using different approaches. Both are valid tools for solving a variety of common tasks such as load balancing, monitoring, and performance enhancements. An important difference is that MySQL Proxy works with all MySQL clients, whereas
mysqlnd приклучоците и MySQL Proxy се различни технологии кои користат различни пристапи. И двете се валидни алатки за решавање на различни вообичаени задачи како што се балансирање на оптоварување, следење и подобрување на перформансите. Важна разлика е што MySQL Proxy работи со сите MySQL клиенти, додека приклучоците се специфични за PHP апликациите.
Како PHP екстензија, приклучок се инсталира на PHP сервер за апликации, заедно со остатокот од PHP. MySQL Proxy може да се стартува на PHP сервер за апликации или може да се инсталира на посветен сервер за ракување со повеќе PHP сервери за апликации. mysqlnd Распоредувањето на MySQL Proxy на серверот за апликации има две предности:
Нема единствена точка на откажување
- Лесно за скалирање (хоризонтално скалирање, скалирање по клиент)
- MySQL Proxy (и приклучоците) можат лесно да решат проблеми кои инаку би барале промени во постоечките апликации.
Сепак, MySQL Proxy има некои недостатоци: mysqlnd MySQL Proxy е нова компонента и технологија за совладување и распоредување.
MySQL Proxy бара познавање на Lua скриптен јазик.
- MySQL Proxy може да се прилагоди со C и Lua програмирање. Lua е претпочитаниот скриптен јазик на MySQL Proxy. За повеќето PHP експерти, Lua е нов јазик за учење. Приклучок може да се напише на C. Исто така е можно да се пишуваат приклучоци на PHP користејќи » PECL/mysqlnd_uh
- MySQL Proxy работи како демон - процес во позадина. MySQL Proxy може да се потсети на претходните одлуки, бидејќи може да се задржи целата состојба. Сепак, приклучок е врзан за животниот циклус на PHP заснован на барања. MySQL Proxy исто така може да споделува еднократни пресметани резултати меѓу повеќе сервери за апликации. Приклучок би требало да ги складира податоците во постојана средина за да може да го направи ова. За таа цел би бил потребен друг демон, како што е Memcache. Ова му дава предност на MySQL Proxy во овој случај.
MySQL Proxy работи над протоколот на жица. Со MySQL Proxy мора да го парсирате и реинженерирате протоколот за комуникација помеѓу MySQL клиент и сервер. Дејствата се ограничени на оние што можат да се постигнат со манипулирање на протоколот за комуникација. Ако протоколот на жица се промени (што се случува многу ретко), скриптите на MySQL Proxy исто така ќе треба да се променат. mysqlnd приклучоците работат над C API, што го огледува
» PECL/mysqlnd_uh.
MySQL Proxy runs as a daemon - a background process. MySQL Proxy can recall earlier decisions, as all state can be retained. However, a
mysqlnd plugin is bound to the request-based lifecycle of PHP. MySQL Proxy can also share one-time computed results among multiple application servers. A
mysqlnd plugin would need to store data in a persistent medium to be able to do this. Another daemon would need to be used for this purpose, such as Memcache. This gives MySQL Proxy an advantage in this case.
MySQL Proxy works on top of the wire protocol. With MySQL Proxy you have to parse and reverse engineer the MySQL Client Server Protocol. Actions are limited to those that can be achieved by manipulating the communication protocol. If the wire protocol changes (which happens very rarely) MySQL Proxy scripts would need to be changed as well.
Mysqlnd plugins work on top of the C API, which mirrors the libmysqlclient client. This C API is basically a wrapper around the MySQL Client Server protocol, or wire protocol, as it is sometimes called. You can intercept all C API calls. PHP makes use of the C API, therefore you can hook all PHP calls, without the need to program at the level of the wire protocol.
Mysqlnd Овој C API е во основа обвивка околу протоколот MySQL Client Server, или протокол за жица, како што понекогаш се нарекува. Можете да ги пресретнете сите C API повици. PHP користи C API, затоа можете да ги закачите сите PHP повици, без потреба да програмирате на ниво на протокол за жица.
го имплементира протоколот за жица. Приклучоците затоа можат да го анализираат, обратно да го инженерски, да го манипулираат, па дури и да го заменат комуникацискиот протокол. Сепак, ова обично не е потребно. mysqlnd Бидејќи приклучоците ви овозможуваат да креирате имплементации што користат две нивоа (C API и протокол за жица), тие имаат поголема флексибилност од MySQL Proxy. Ако еден