Mysqlnd
PHP Manual

MySQL Native Driver プラグインAPI

目次

The MySQL Native Driver プラグインAPI は MySQL Native Driver、略して mysqlnd が持つ機能の一つです。mysqlnd プラグインは、PHPアプリケーションと MySQL サーバの間にあるレイヤで動きます。これは MySQL Proxy と比較できます。MySQL Proxy はあらゆる MySQL クライアントアプリケーション、たとえば PHPアプリケーション と MySQL サーバの間のレイヤで動きます。mysqlnd プラグインは典型的な MySQL Proxy のタスク、たとえばロードバランシングやモニタリング、パフォーマンスの最適化をこなせます。アーキテクチャや置かれる場所が異なるため、mysqlnd プラグインは MySQL Proxy が持ついくつかの欠点がありません。たとえば、プラグインを使えば、単一障害点が存在しませんし、専用のプロキシサーバをデプロイする必要もありませんし、新しいプログラミング言語(Lua) を学ぶ必要もありません。

mysqlndプラグインは mysqlndの拡張と考えることができます。プラグインは 多くの mysqlnd 関数の制御を奪い取ることができます。mysqlnd 関数は ext/mysqlext/mysqliPDO_MYSQL のような PHP の MySQLエクステンションによって呼び出されます。その結果として、mysqlndプラグイン はクライアントアプリケーションからこれらのエクステンションへの呼び出しの制御をすべて奪うことができるのです。

内部的な mysqlnd 関数の呼び出しも制御を奪ったり、処理を置き換えたりすることができます。mysqlnd の内部的な関数テーブルを管理することに関しても全く制限がありません。ある mysqlnd 関数が mysqlnd を使うエクステンションによって呼び出される場合に、適切な mysqlndプラグインの適切な関数に処理を転送するようにセットアップすることが可能です。このように、mysqlnd の内部関数テーブルを管理できることで、プラグインの柔軟性が最大限に発揮できるのです。

mysqlndプラグインは、実際は mysqlnd のプラグインAPI (これは MySQL Native Driver, 略して mysqlnd に組み込まれています) を使い、C言語 で書かれた PHPエクステンション です。 プラグインは PHPアプリケーションに対して 100% 透過的です。つまり、プラグインがPHPアプリケーションとは異なるレイヤで動作するため、アプリケーションを変更する必要がないのです。mysqlndプラグイン は、mysqlnd のひとつ下のレイヤで動くと考えることができます。

mysqlndプラグインで実現可能なアプリケーションのリストをいくつか以下に示します

利用可能な MySQL Native Driverプラグイン

既にたくさんの mysqlnd プラグインが利用可能になっています。以下が含まれます。


Mysqlnd
PHP Manual