7
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

MySQL Native Driver を調べてみた

Posted at

MySQL Native Driver とはなんだ?

PHPマニュアルの「Mysqlndの概要」 (http://php.net/manual/ja/mysqlnd.overview.php )には、以下の様に説明されていた。

MySQL データベースに接続するための API を提供するのは、 MySQL 拡張モジュールや mysqli そして PDO MYSQL です。これらの拡張モジュールが、MySQL Native Driver を使って MySQL サーバーと通信できるようになったということです。

とすると、mysqli や PDO MYSQL のMySQLドライバーは、なんだったんだ?
∑( ̄[] ̄;)!ホエー!!

この疑問に対して、PHPマニュアルの「インストール手順」( http://php.net/manual/ja/mysql.installation.php )では、PHP 5.3以降では、デフォルトで mysqlndなんだそうだ。
自分の使っているPHPのバージョンを調べると、以下のとおりなので、間違いなく Native Driver を使っているはずだ。

root@vagrant-ubuntu-trusty:/etc/php5/fpm# php -v
PHP 5.5.9-1ubuntu4.11 (cli) (built: Jul  2 2015 15:23:08) 
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.5.0, Copyright (c) 1998-2014 Zend Technologies
    with Zend OPcache v7.0.3, Copyright (c) 1999-2014, by Zend Technologies

コマンドラインから、phpinfo()関数をコールして確認してみると、次のとおり有効(enabled)になっている。

root@vagrant-ubuntu-trusty:/etc/php5/fpm# php -r 'phpinfo();' |grep mysqlnd
/etc/php5/cli/conf.d/10-mysqlnd.ini,
Client API version => mysqlnd 5.0.11-dev - 20120503 - $Id: bf9ad53b11c9a57efdb1057292d73b928b8c5c77 $
Client API library version => mysqlnd 5.0.11-dev - 20120503 - $Id: bf9ad53b11c9a57efdb1057292d73b928b8c5c77 $
mysqlnd
mysqlnd => enabled
Version => mysqlnd 5.0.11-dev - 20120503 - $Id: bf9ad53b11c9a57efdb1057292d73b928b8c5c77 $
Loaded plugins => mysqlnd,debug_trace,auth_plugin_mysql_native_password,auth_plugin_mysql_clear_password,auth_plugin_sha256_password
mysqlnd statistics =>  
Client API version => mysqlnd 5.0.11-dev - 20120503 - $Id: bf9ad53b11c9a57efdb1057292d73b928b8c5c77 $

以上、知らないうちに、Native Driver を使っていたわけだ。(゚-゚;)ウーン

Native Driver のプラグインが便利そう!

PHPマニュアル 「MySQL Native Driver プラグインAPI」(http://php.net/manual/ja/mysqlnd.plugin.php )によると、ネイティブ・ドライバーのプラグインには沢山の種類がある。

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

PECL/mysqlnd_mc - 複数接続ができるプラグイン
PECL/mysqlnd_ms - マスタースレーブ構成用のプラグイン
PECL/mysqlnd_qc - クエリキャッシュプラグイン
PECL/mysqlnd_pscache - プリペアドステートメントハンドルをキャッシュするプラグイン
PECL/mysqlnd_sip - SQLインジェクションから防御するためのプラグイン
PECL/mysqlnd_uh - ユーザーハンドラープラグイン

これは試してみなければ、なるまい!

7
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?