Bei den mysqlnd-Plugins und dem MySQL-Proxy handelt es
   sich um verschiedene Technologien, die unterschiedliche Ansätze verwenden.
   Beide eignen sich für eine Vielzahl von Standardaufgaben wie Lastausgleich,
   Überwachung und Leistungsverbesserung. Ein wichtiger Unterschied besteht
   darin, dass der MySQL-Proxy mit allen MySQL-Clients funktioniert, während
   mysqlnd-Plugins spezifisch für PHP-Anwendungen sind.
  
   Als PHP-Erweiterung wird ein mysqlnd-Plugin zusammen mit
   dem Rest von PHP auf dem PHP-Anwendungsserver installiert. Der MySQL-Proxy
   kann entweder auf dem PHP-Anwendungsserver laufen oder auf einem
   dedizierten Rechner installiert werden, um mehrere PHP-Anwendungsserver zu
   verwalten.
  
Der Einsatz des MySQL-Proxys auf dem Anwendungsserver hat zwei Vorteile:
Kein einzelner Ausfallpunkt
Einfach zu skalieren (horizontale Skalierung, Skalierung durch den Client)
   Mit dem MySQL-Proxy (und den mysqlnd-Plugins) lassen
   sich auf einfache Weise Probleme lösen, die andernfalls Änderungen an
   bestehenden Anwendungen erfordert hätten.
  
Allerdings hat der MySQL-Proxy auch ein paar Nachteile:
Es handelt sich um eine neue Komponente und Technologie, die beherrscht und implementiert werden muss.
Er erfordert Kenntnisse in der Skriptsprache Lua.
   Der MySQL-Proxy kann mit C- und Lua-Programmierung angepasst werden, wobei
   Lua für diesen Zweck bevorzugt wird. Für die meisten PHP-Experten ist Lua
   eine neu zu erlernende Sprache. Ein mysqlnd-Plugin kann
   in C geschrieben werden und mit
   » PECL/mysqlnd_uh
   ist es auch möglich, Plugins in PHP zu schreiben.
  
   Der MySQL-Proxy läuft als Daemon - ein Hintergrundprozess. Da alle Zustände
   gespeichert werden können, kann der MySQL-Proxy frühere Entscheidungen
   abrufen. Ein mysqlnd-Plugin ist im Gegensatz dazu an den
   Lebenszyklus einer PHP-Abfrage gebunden. Der MySQL-Proxy kann auch einmalig
   berechnete Ergebnisse auf mehrere Anwendungsserver verteilen. Ein
   mysqlnd-Plugin müsste dazu Daten in einem persistenten
   Medium speichern. Zu diesem Zweck müsste ein anderer Daemon verwendet
   werden, z. B. Memcache. Dies verschafft dem MySQL-Proxy in diesem Fall einen
   Vorteil.
  
Der MySQL-Proxy nutzt das Wire-Protokoll. Mit dem MySQL-Proxy muss das MySQL-Client-Server-Protokoll analysiert und rekonstruiert werden (Reverse Engineering). Die Aktionen sind auf diejenigen beschränkt, die durch die Änderung des Kommunikationsprotokolls erreicht werden können. Wenn sich das Wire-Protokoll ändert (was sehr selten vorkommt), müssen auch die MySQL-Proxy-Skripte geändert werden.
   Mysqlnd-Plugins nutzen die C-API, die den
   libmysqlclient-Client nachbildet. Diese C-API ist im
   Wesentlichen ein Wrapper um das MySQL-Client-Server-Protokoll, das manchmal
   auch als Wire-Protokoll bezeichnet wird. Sämtliche C-API-Aufrufe können
   abgefangen werden. Da PHP die C-API nutzt, können somit alle PHP-Aufrufe
   eingehängt werden, ohne dass eine Programmierung auf der Ebene des
   Wire-Protokolls erforderlich ist.
  
   Mysqlnd implementiert das Wire-Protokoll. Plugins können
   daher das Kommunikationsprotokoll analysieren, rekonstruieren, ändern und
   sogar ersetzen. In der Regel ist dies jedoch nicht nötig.
  
   Mit Plugins können Implementierungen erstellt werden, die zwei Ebenen
   verwenden (C-API und Wire-Protokoll), weshalb sie flexibler sind als der
   MySQL-Proxy. Wenn ein mysqlnd-Plugin unter Verwendung
   der C-API implementiert wird, sind bei späteren Änderungen am
   Wire-Protokoll keine Änderungen am Plugin selbst erforderlich.
  
