mysql是通过什么方式跟PHP打交道的?
回复内容:
mysql是通过什么方式跟PHP打交道的?
我觉得问题应该改为"PHP是通过什么方式跟mysql打交道的更加合适"
这里面有几层答案
首先, 可以说PHP是通过与C语言的扩展来和mysql打交道. PHP是可以用C语言写扩展的, 其他语言比如python, ruby, perl都可以. 所以很多情况下用C语言写一点点PHP/Python的扩展, 可以将原来的C语言mysql driver变成PHP/Python的mysql driver, 实际上最后还是在调用mysql的那个C语言版本的动态库(.dll或者.so)
很多东西都是这么来的, 比如opengl的库, crypto库, memcache库等等
再往下一层, 我们也可以说PHP是通过sock或者tcp来连接mysql服务器的. 如果mysql服务器和PHP运行在同一台机器上, 那么可以通过sock或者127.0.0.1的tcp连接与mysql服务器通信, 说白了也就是跨进程通信(即使在本地, 进程间通信往往也使用127.0.0.1+端口号这样的方式, 据说内核优化过, 不会走到网卡, 性能挺高)
如果不在同一台机器上, 那么就是走网卡的tcp连接了
最后, 是不是所有的driver都要用到C语言这一层呢? 如果协议简单, 完全可以在PHP这一层实现一个driver, 然后调用PHP的socket库来实现. 不过处于性能的考虑, 协议的复杂性(mysql服务器的协议), 日后的可维护性(mysql版本升级), 所以基本上没人这么干.
- PHP mysql的操作,为什么要返回一个字符串数组,不返回真实的数据类型?
- php-mysqli 源码
上一篇: php apc缓存使用实例
下一篇: Oracle TDE 透明数据加密技术
推荐阅读
-
mysql是通过什么方式跟PHP打交道的?
-
PHP查询mysql,中文数据,通过不同方式添加的相同数据竟然显示不同解决方案
-
一般像广告平台这样子的项目,获取app的点击数,激活数,下载量等指标,是通过日志分析出来的,那么日志一般是通过什么方式得到的呢?
-
PHP使用数据库永久连接方式操作MySQL的是与非
-
PHP查询mysql,中文数据,通过不同方式添加的相同数据竟然显示不同解决方案
-
深入探讨:PHP使用数据库永久连接方式操作MySQL的是与非
-
深入探讨:PHP使用数据库永久连接方式操作MySQL的是与非
-
大象一般是通过什么方式防晒的 蚂蚁庄园5月16日答案
-
什么是php的累加方式写入
-
请教下,php是通过apache模块的方式下如何进行gdb 单步源码调试。