PHP最近发布了5.3版本,在该版本当中,提供了一个mysqlnd (MySQL Native Driver) 库,用来访问 MySQL数据库,大大提升了PHP的数据库访问性能。
我们知道,PHP访问MySQL数据库,是通过MySQL数据库的libmysql client库,这个libmysql client是用C/C++编写的,虽然一直以来PHP通过libmysql访问数据库性能也一直很好,但是却无法利用PHP本身的很多特性。
mysqlnd提供了和Zend引擎高度的集成性,更加快速的执行速度,更少的内存 消耗,利用了PHP的Stream API,以及客户段缓存机制。由于mysqlnd是透过 Zend引擎,因此提供提供更多高级特性,以及有效利用Zend进行加速,原理图如下:
从上图可以看出来,libmysql是直接访问数据库的,而mysqlnd是通过Zend访 问数据库。