PHPMysqlsupport:是mysql还是mysqlnd?

您正在使用其中一个备用存储库安装现代版本的php,突然间您遇到了一个令人困惑的选择。你想在php程序中支持MySQL(mysqli或PDO-mysql)。你会怎么选择? 

首先,您可能应该使用PDO。与mysqli相比,它只是一个更干净的数据库界面,如果你使用像Doctrine2这样的ORM,它也往往是支持的选项。 

但是你可能已经发现安装PDO软件包并不能让你支持MySQL。 

那么这2个套餐是什么?一旦我们将webtatic设置为回购,那么让我们看看Centos下的yum向我们展示了什么:

创新互联为客户提供专业的做网站、网站设计、程序、域名、空间一条龙服务,提供基于WEB的系统开发. 服务项目涵盖了网页设计、网站程序开发、WEB系统开发、微信二次开发、手机网站开发等网站方面业务。


  *  webtatic:us-east.repo.webtatic.com 
====================================== ======== 
php56w-mysql.x86_64: 用于 使用MySQL数据库  PHP应用程序
的模块php56w-mysqlnd.x86_64: 用于 使用MySQL数据库的PHP应用程序的模块
 



简而言之,mysql扩展即mysql库是引用Oracle / mysql

...通用客户端库

名为libmysql。

这是支持mysql的原始php方法。MySQL提供了一个客户端api库,并使用该c库,创建了一个php扩展,它依赖于libmysql实现着名的mysql_函数,允许php与mysql通信。 

mysqlnd包(其中nd代表“本机驱动程序”)是一个项目的成果,它使mysql在php语言中最佳地工作。再次引用mysql网站:

mysqlnd库经过高度优化,可以与PHP紧密集成。MySQL客户端库无法提供相同的优化,因为它是一个通用的客户端库。

mysqlnd库使用PHP内部C基础架构无缝集成到PHP中。此外,它还使用PHP内存管理,PHP Streams(I / O抽象)和PHP字符串处理例程。例如,mysqlnd使用PHP内存管理可以通过使用只读变量(写入时复制)来节省内存,并使mysqlnd适用于PHP内存限制。



除了这些好处之外,还有一些有趣的增强功能和对插件的支持,这些插件可能是您作为开发人员或系统管理员特别感兴趣的。 

一般情况下,你的代码不应该破坏,因为api在mysqlnd下应该和旧的mysql库一样。

结论

总之,您希望现在和将来使用 mysqlnd


网站题目:PHPMysqlsupport:是mysql还是mysqlnd?
网站网址:http://scyanting.com/article/gohipi.html