我希望创建一个使用两组数据库的网站,以 CSV 格式给出,大小均为 10 MB。我选择将 Java 动态 Web 应用程序与 JSP 结合使用,用户可以使用该应用程序对通过 CSV 提供的数据进行搜索和排序。
据我了解,用户/客户端向服务器发送请求,服务器将调用后端的Java案例,该案例具有不同的排序方法和可以操作的CSV数据。
这些位于后端的数据是我遇到困惑的地方。我知道可以将数据加载到数据库中,并将其放在我可以调用的服务器上。
如果我使用一个读取 CSV 并将数据加载到数组中的类,那么每次有人访问网站时都会执行此读取工作,从而导致延迟,还是已经将其加载到服务器中的数组中?
最佳答案
根据您使用的范围,它将被加载到应用程序上下文中,因此一次(例如在应用程序启动时加载的单例类中)。
但我不推荐这种方法,我会推荐一个设计合理的数据库,您可以将 csv 数据放入其中。这样,您将拥有数据库引擎来帮助您组织数据,从而为您提供可伸缩性和可维护性(尽管通过正确的类设计,DAO 模式将为您提供相同的效果)。 数据库中的组织数据将使您能够更灵活地使用已创建的 SQL 函数搜索数据。
为了说明我的观点,数据库系统相对于文件系统有一些优点:
- 无冗余数据 - 通过数据标准化消除冗余
- 数据一致性和完整性 - 数据规范化也能解决这一问题
- 安全 - 每个用户都有不同的访问权限
- 隐私 - 访问受限
- 轻松访问数据
- 轻松恢复
- 灵活
- 并发 - 数据库引擎将允许您并发读取数据甚至写入数据。
我不会列出缺点,因为我正在阐述自己的观点:)
关于java - 我是否必须将 csv 值加载到 Java Web 应用程序的数据库中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35857380/