gpt4 book ai didi

java - 如何从数据库中返回大量数据给网页客户端?

转载 作者:行者123 更新时间:2023-11-28 23:04:58 24 4
gpt4 key购买 nike

我有以下问题:
我有一个将数据存储在数据库中的 Web 应用程序。我希望客户能够提取数据,例如2 个表到一个文件(客户端本地)。
数据库可以任意大(这意味着我不知道数据库中可能有多少数据。可能很大)。
最好的方法是什么?
是否应该将所有数据从表中SELECT并作为单个结构返回给客户端以存储在文件中?
或者应该分部分检索数据,例如前 100 个然后下 100 个条目等并在客户端中创建单一结构?
这里有什么利弊要考虑吗?

最佳答案

我已经构建了类似的东西 - 这里有一些非常棘手的问题,特别是当文件大小可以增长到超出浏览器可以轻松处理的范围时。随着数据量的增长,生成文件的时间也会增加;这反过来又不是 web 应用程序擅长的,因此您冒着 web 服务器对即使是少量访问者都请求大文件不满意的风险。

我们所做的是将应用程序分成 3 个部分。

“文件请求”是一个简单的网页,经过身份验证的用户可以在其中请求他们的文件。这将在网页请求上下文之外启动第二部分:

文件生成器。在我们的例子中,这是一个 Windows 服务,它查看包含文件请求的数据库表,选择最新的一个,运行适当的 SQL 查询,将输出写入 CSV 文件,并压缩该文件,然后将其移动到输出目录并通过链接邮寄给用户。它设置数据库中记录的状态,以确保在任何一个时间点只发生一个过程。

FTP/WebDAV 站点:ZIP 文件被写入一个可通过 FTP 和 WebDAV 访问的文件夹 - 这些协议(protocol)往往比标准 HTTP 下载更好地处理大文件。

这非常有效 - 用户不喜欢等待他们的文件,但延迟很少超过几分钟。

关于java - 如何从数据库中返回大量数据给网页客户端?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11394075/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com