gpt4 book ai didi

java - Oracle 不同与 java (cqengine/set) : whose leads to better performances?

转载 作者:行者123 更新时间:2023-12-01 16:56:46 24 4
gpt4 key购买 nike

我有一个表,从中提取 8 列,这些列将是 pojo 的属性,例如 MyPojo。

我想删除重复项。

我想出了两个策略。

1-让 oracle 使用不同的关键字来处理这个问题

select distinct c1,c2...c8 from TABLE where...`

2-使用 cqengine ( https://code.google.com/p/cqengine/wiki/DeduplicationStrategies#Logical_Elimination_Strategy ) 在 java 中执行此操作:

DeduplicationOption deduplication = deduplicate(DeduplicationStrategy.LOGICAL_ELIMINATION);
ResultSet<Car> results = cars.retrieve(query, queryOptions(deduplication));

3-在 java 中使用一组执行此操作

simply storing rows inside of a Set<MyPojo>

从性能角度来看哪个更好?

最佳答案

决定这些事情的最好方法就是对其进行建模。

您的应用程序中的访问模式是什么?

  • 如果这是一次性请求:让数据库进行过滤。
  • 如果您希望收到许多此类相同的请求:让数据库进行过滤,并考虑在应用程序中缓存结果。
  • 如果您希望对同一数据集进行多种查询,请考虑将未过滤的数据集缓存到应用层,然后使用 CQEngine 进行查询。

不存在诸如“始终让数据库完成工作”之类的经验法则。如果您的应用程序以任何规模运行,您将不希望每个请求都访问数据库。您需要扩展您的应用程序层。

另一方面,您不应该过度设计。答案取决于您期望的流量和数据访问模式。

关于java - Oracle 不同与 java (cqengine/set) : whose leads to better performances?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31729740/

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