Java remote MySQL vs HTTPRequest



我最近用Java编写了一个程序,它可以做一些事情。它主要依赖于使用connector/j从mysql数据库中获取数据。数据库位于远程服务器上(托管在荷兰)。这会导致一些延迟问题。我最近意识到了将JSON与Java结合使用的能力。

所以,我的问题是:如果我有某种前端脚本,我向其发出http请求,以返回json(一种API),这是否比在远程服务器上直接请求mysql更快?它们有缺点吗?

从技术上讲,答案是"取决于":)

我的一些想法。。。

我可以说,根据我的经验,你的数据库对远程连接开放的情况非常罕见,主要是因为安全原因。

另一方面在进行"头对头"比较时,我预计JSON会更慢,因为这里有http开销+JSON本质上是一种数据表示的文本协议(与序列化的二进制数据相比,读取没有有效编码)。

此外,此解决方案将需要在数据库和java客户端代码之间使用某种HTTP服务器。您还应该协调数据传输的问题(进程间的通信通常很慢),所以如果您将http服务器放置在远离db服务器的位置,则很可能需要花费大量时间才能带来数据。

话虽如此,还有很多事情需要提及:-当您使用json/xml/serialized objects(RMI)/任何可以"预处理"数据的东西时,这确实是一件大事,因为有时它比SQL更灵活。

  • 数据缓存。有时您可以预先缓存数据,甚至不转到数据库。

  • 弄清楚数据库的流量实际上是什么样子的。例如,当您在Oracle中使用普通JDBC时,有时它会向数据库发出额外的请求(您可以使用嗅探器来查看它),并带来额外的数据块。它发生在著名的循环中:

    while(resultSet.next()){///。。。。做你的事}

这通常是为了取得重大成果。

  • 也许您可以通过优化查询本身来大大提高总处理时间,但这是另一回事

对我来说,在数据库和远程客户端之间维护一些东西通常是值得的,这听起来很好。

希望这能帮助

最新更新