我有一个问题,只是在这里寻找建议。
因此,我的应用程序通过将桌面应用程序转换为 Web 来“现代化”桌面应用程序,并使用 Java 编写的 ICEFaces UI 和服务器端。然而,他们保持着相同的 Oracle 数据库,目前该数据库有大约 700-900 个表,并且表中可能有 10 亿条记录。一些单独的表有 2.5 亿行,许多有超过 2500 万行。
不用说,数据库的扩展性不好。结果,应用程序的性能看起来很糟糕。架构师/未来的决策者要么拒绝要么不愿意重构持久性。因此,基本上我们正在为目前满足大多数用户需求并且相对轻松的功能性桌面应用程序涂上一层新油漆。现在桌面应用程序中的实际数据库性能非常慢。我之前提到的快速性能是与数据库无关的东西(对不起,我在那儿说错了)。我晚上难以入睡,想着这个应用程序的性能有多差,以及日常用户完成他们的工作会有多困难。
所以,我的问题是,我有哪些选择来减轻这场迫在眉睫的灾难?我可以在数据库和 Java 代码之间放置某种类型的中间层来提高性能,同时保持数据库结构完整吗?缓存显然是一种选择,但我不认为这是万灵药。是否可以在两者之间分层 NoSQL DB 或其他什么?