Java远程MySQL与HTTPRequest
我最近用Java编写了一个程序,它可以做一些事情。它主要依赖于使用connector/j从mysql数据库获取数据。数据库位于远程服务器上(托管在荷兰)。这会导致一些延迟问题。我最近意识到了将JSON与Java结合使用的能力Java远程MySQL与HTTPRequest,java,mysql,json,httpwebrequest,Java,Mysql,Json,Httpwebrequest,我最近用Java编写了一个程序,它可以做一些事情。它主要依赖于使用connector/j从mysql数据库获取数据。数据库位于远程服务器上(托管在荷兰)。这会导致一些延迟问题。我最近意识到了将JSON与Java结合使用的能力 所以,我的问题是:如果我有某种前端脚本,我向其发出http请求以返回json(一种API),这比在远程服务器上直接向mysql发出请求快吗?这有什么坏处吗?从技术上讲,答案是“这要看情况而定”: 这里有几点我的想法 我可以说,从我的经验来看,由于安全原因,您的数据库对远程连
所以,我的问题是:如果我有某种前端脚本,我向其发出http请求以返回json(一种API),这比在远程服务器上直接向mysql发出请求快吗?这有什么坏处吗?从技术上讲,答案是“这要看情况而定”: 这里有几点我的想法 我可以说,从我的经验来看,由于安全原因,您的数据库对远程连接开放的情况非常罕见 另一方面 在进行“head-to-head”比较时,我认为JSON会比较慢,因为这里有http开销+JSON本质上是一种数据表示的文本协议(与序列化二进制数据相比,读取时没有有效编码) 此外,这个解决方案需要在数据库和java客户机代码之间使用某种HTTP服务器。 您还应该考虑数据传输的问题(进程间通信通常很慢),因此,如果您将http服务器放置在远离db服务器的地方,则很可能需要花费大量时间来传送数据 话虽如此,仍有许多事情值得一提: -当你使用json/xml/serialized objects(RMI)/任何你可以“预处理”你的数据的东西时,这真的是一件大事,因为有时候它比SQL更灵活
- 数据缓存。有时,您可以预缓存数据,甚至不必转向数据库
- 弄清楚db的流量实际上是什么样子的。例如,当您在Oracle中使用普通JDBC时,有时它会向db发出额外的请求(您可以使用嗅探器查看它),并带来额外的数据块。它发生在著名的循环中: while(resultSet.next()){ ///做你的事 }
- 也许您可以通过优化查询本身来提高总处理时间,但情况不同