Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java远程MySQL与HTTPRequest_Java_Mysql_Json_Httpwebrequest - Fatal编程技术网

Java远程MySQL与HTTPRequest

Java远程MySQL与HTTPRequest,java,mysql,json,httpwebrequest,Java,Mysql,Json,Httpwebrequest,我最近用Java编写了一个程序,它可以做一些事情。它主要依赖于使用connector/j从mysql数据库获取数据。数据库位于远程服务器上(托管在荷兰)。这会导致一些延迟问题。我最近意识到了将JSON与Java结合使用的能力 所以,我的问题是:如果我有某种前端脚本,我向其发出http请求以返回json(一种API),这比在远程服务器上直接向mysql发出请求快吗?这有什么坏处吗?从技术上讲,答案是“这要看情况而定”: 这里有几点我的想法 我可以说,从我的经验来看,由于安全原因,您的数据库对远程连

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


所以,我的问题是:如果我有某种前端脚本,我向其发出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()){ ///做你的事 }

通常情况下,这是为了取得重大成果

  • 也许您可以通过优化查询本身来提高总处理时间,但情况不同
对我来说,在db和远程客户端之间维护一些东西通常是值得的,这听起来不错

希望这有帮助