A,B服务器,A的PHP程序直接打开B服务器数据库和A的PHP直接访问B的info.php,两者哪个更快?
展开全部
实际上,第二种方法更快,也更安全,特别是在 SQL 语句不够优秀的时候,更是后者快,因为mysql 服务器和客户端之间的数据转送都是在B服务器上完成,就算SQL查出多条记录,但几使用一条,中间也只是多占用B服务器的内存而已而不会浪费AB服务器之间的带宽。
用第二种方法,也更安全,可以不用把数据库对外网开放,只能使用本机访问对服务器安全来说还是好很多
用第二种方法,也更安全,可以不用把数据库对外网开放,只能使用本机访问对服务器安全来说还是好很多
追问
回答的比较详细。再等等,要是没人答,就给你采纳。。
另外我多问个运行细节:
A发送了SQL查询语句到B,B得到查询语句后打开数据库占用内存,进行检索,得到的二维表应该在B机吧?可A机的PHP发送查询语句后面还有代码进行匹配等动作,意思是等B机有了二维表后,直接把二维表所有数据返回到A机内存上检索吗?
我希望得到运行逻辑流程原理。。
追答
B机得到的就已经是查询结果了,如果你做过C语言开发(或者PHP的C扩展开发),你一定知道C语言里的数据结构。当B机查询完后,会按照一定的协议(就是 mysql 客户端之间的协议)把结果按照一定的C语言数据结构发送给A机,A机得到的其实只是这个已经结构结果,当PHP通过mysql函数去取时,PHP的mysql函数再把这个C语言的结构转换成PHP的数组(或对象)形式供PHP使用
我想了下,可能你说的二维表就是我说的数据结构,应该是一个意思,那么你理解的就是正确的
展开全部
理论上第一种更快,起码少了中间info.php的请求时间
追问
A发送了SQL查询语句到B,B得到查询语句后打开数据库占用内存,进行检索,得到的二维表应该在B机吧?可A机的PHP发送查询语句后面还有代码进行匹配等动作,意思是等B机有了二维表后,直接把二维表所有数据返回到A机内存上检索吗?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询