gpt4 book ai didi

java - 在负载较重的数据库的查询中使用子选择应考虑什么?

转载 作者:太空宇宙 更新时间:2023-11-04 09:00:57 24 4
gpt4 key购买 nike

我们正在开发一个具有持久层的应用程序,使用 OpenJPA1.1 和 Oracle DB 作为后端存储。我将使用带有子选择的查询(请参阅我的问题 Solving JPA query finding the last entry in connected list )。

现在,我的同事评论说,此类查询可能会导致性能问题,因为数据库中充满了数千个并发用户使用的数千个客户数据(这将在生产中成为现实)。

所以,我的问题是:在这种情况下,是否有在查询中使用子选择“最佳实践”?这样做必须考虑什么?

最佳答案

我首先要证明这是一个问题。您需要向数据库加载虚拟数据,并查看随着数据库变大,查询的执行情况。否则,您花时间优化可能不是问题的东西。

有一点需要考虑。在我工作过的所有地方,崩溃的不是数千条记录,而是数百万条记录。你已经有了这个系统,它可以正常工作一段时间,然后即使你向它投入更多硬件,它也会开始变慢。我现在工作的地方的历史表中有大约 7000 万条记录,可以追溯到 1998 年。因此,某些查询的性能非常糟糕,他们花了很多时间来解决这些问题。

但在某些时候你确实不得不问。我们是否需要在交易系统中保留超过 4 年的数据?甚至4个月大?此时间限制取决于您的业务需求,但如果您的事务系统仅包含处理正在进行的工作所需的数据...并将您的历史记录存档到数据仓库中。您将提高整体性能,因为您很可能只是偶尔需要查询旧数据,那么为什么要将其与最近的数据一起保留呢?

如果您预先考虑到这一点,从长远来看,您会避免很多令人头疼的问题。

关于java - 在负载较重的数据库的查询中使用子选择应考虑什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/520595/

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