当前位置:  开发笔记 > 运维 > 正文

数据库和Web服务调用之间的速度差异是什么?

如何解决《数据库和Web服务调用之间的速度差异是什么?》经验,为你挑选了1个好方法。

一切都是平等的,并且以最简单的形式,哪个更快?
1.)对Web服务方法
的调用2.)对数据库的调用

例如,假设您有一个简单的Web服务,它只返回一个在X时间内计算的整数.您还有一个数据库,当以正确的方式查询时,也需要X时间来计算答案.(因此两种情况下计算时间都相同)在这两种情况下,为简单起见,假设两个方向的数据量相同,例如,单个32位整数.

到目前为止,Web服务和数据库的计算时间完全相同.

环境是应用程序所在的1个应用程序服务器,以及同时拥有Web服务和数据库的另一个服务器.除了重复调用Web服务或数据库的应用程序之外,环境中没有任何其他操作.这一切都在一个局域网内,因此任何网络延迟都是相同的.

从一个更快的应用程序,对数据库的调用,或对Web服务的调用?

我想,我想要分离的是哪个更重.设置,打开,关闭,拆除数据库连接的速度是否比Web服务慢,或者它是否相同?此外,如果还有其他事情,例如从Web服务解析结果,它们如何影响速度?



1> Herbert Sitz..:

O(1)没有提到任何时间长度.单个操作在Web服务上可能需要0.001秒,在数据库中需要100秒,它们都可以使用O(1)函数:http: //en.wikipedia.org/wiki/Big_O_notation

很难知道你在问什么.如果您询问访问本地数据库是否通常比通过Internet访问类似服务更快,那么我希望通常答案是本地数据库会更快.通过互联网对Web服务的调用有很多开销,并且通过互联网进行的通信相对较慢.Evan在一台慢速计算机上,数据库每秒可以执行数千个简单查询.相比之下,通过互联网访问,您很幸运每秒可获得50次往返请求,甚至无法计算在服务器上执行请求的操作所需的时间.

如果您要问网络上的服务器是否可以通过避免数据库和直接计算结果来更快地提供数据,那么答案取决于它.在这种情况下对数据库的调用会增加不必要的开销,如果其中的数据可以在独立函数中轻松计算.这个问题的答案与"网络服务"没有任何关系.在函数中计算答案或使用数据库查询访问答案是否更快?正如我所说,答案取决于您必须使用的特定功能的复杂性,并将其计算时间与直接从数据库访问答案(或部分答案)的开销相比较.

简而言之,你的问题的答案取决于你究竟在问什么.它也可能有助于你知道为什么要问这个问题.我怀疑真正的答案是,这可能不是你需要担心的事情,除非你有特殊情况需要优化,否则不是真正的实际问题.

如果你担心web服务和数据库都在局域网上的速度比较,我很确定数据库的开销小于web服务.应用程序通常维护与db的有状态连接,而对web服务的请求是通过http,这是无状态的,相对较高的开销,并且较慢.可能是错的.最好的答案是启动简单的Web服务,查询,以及(1)测量使用两种方法检索结果所花费的时间,并进行比较,和/或(2)创建一个打开大量线程并执行一些加载的应用程序测试.

需要注意的是:如果您的应用程序未维护打开的连接或无法访问与db的连接池,则db替代方案可能会更慢.初始创建db连接可能相对较慢.但这不应该影响事物,因为你应该编写你的应用程序,以便始终保持开放的连接.

推荐阅读
拾味湖
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有