繁体   English   中英

直接从mysql套接字将大数据写入servlet中的响应套接字

[英]Write large data directly from mysql socket to response socket in a servlet

我想知道这是否合理可行。 假设我有一个(Spring)servlet,该servlet提供在MySQL中存储为blob的大文件。 不管那是否理想,情况都是如此。

说我满足了许多这样的要求。 我想尽可能地限制我的Java应用程序使用的内存。

从理论上讲,从mysql连接直接读取到servlet响应的数据似乎应该能够写入,而无需在应用程序进程的内存中加载大byte[]

如果重要的话,我正在使用Spring JDBC和Spring mvc。

谢谢

当然,这就是ResultSet.getBinaryStream()ResultSet.getCharacterStream()存在的原因。

然后,只需将InputStream的内容复制到OutputStream (大概是从控制器中的HttpServletResponse检索到的ServletOutputStream )即可。

然后,所使用的内存量和传输数据的实际方法取决于驱动程序。 天真的驱动程序(例如MySQL)只会将整个数据读入ByteArrayInputStream ,而PostgreSQL例如将根据需要使用其LargeObjectAPI将数据与服务器分开传输,从而提高了内存使用效率。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM