从具有20,000条记录的网格中查找重复记录,而无需快速访问数据库

用户名

在我的自动化测试中,我无法访问XML或数据库。我想找到网格中特定列的重复记录。我的网格有20,000条记录。唯一的问题是我们无权访问任何数据库,因此如果我更改页面速度很慢,每个页面加载50条记录。存在20,000条记录的性能问题。

彼得·劳瑞

生成此结果后,您将对其进行缓存,因此不必在每次页面访问时都重新生成它。但是,在2毫秒内,您可能不会打扰。

这是一个定时的例子

static class MyRecord {
    String text;
    int id;
    double d;

    public MyRecord(String text, int id, double d) {
        this.text = text;
        this.id = id;
        this.d = d;
    }

    public int getId() {
        return id;
    }
}

public static void main(String[] args) {
    for (int t = 0; t < 100; t++) {
        long start = System.nanoTime();
        Random rand = new Random();
        Map<Integer, MyRecord> map = IntStream.range(0, 20000)
                .mapToObj(i -> new MyRecord("text-" + i, rand.nextInt(i+1), i))
                .collect(Collectors.groupingBy(MyRecord::getId, 
                        Collectors.reducing(null, (a, b) -> a == null ? b : a)));
        long time = System.nanoTime() - start;
        System.out.printf("Took %.1f ms to generate and collect duplicates%n", time/1e6);
    }
}

此测试需要2.0毫秒才能生成并整理出重复的记录。您可以在Java 7中编写相同的代码,只是编写时间更长,但不会更慢。如果不必生成记录,它将更快。

为了进行比较,我将其与

Map<Integer, MyRecord> map = IntStream.range(0, 20000).parallel()
    .mapToObj(i -> new MyRecord("text-" + i, rand.nextInt(i+1), i))
    .collect(Collectors.groupingByConcurrent(MyRecord::getId,
            Collectors.reducing(null, (a, b) -> a == null ? b : a)));

但现在需要16毫秒。:P

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

ExtJs-从数据库中的记录创建网格

来自分类Dev

在数据库中插入ASP.NET重复记录

来自分类Dev

使用php形式将记录添加到mysql数据库中,而无需离开/刷新页面

来自分类Dev

计算具有不同列名的表中的重复记录

来自分类Dev

从表中查找重复记录,并删除除最近日期以外的所有记录

来自分类Dev

Puma和Rails-在没有数据库索引的情况下防止重复记录

来自分类Dev

Laravel雄辩的更新记录而无需从数据库加载

来自分类Dev

更新记录时如何防止数据库中重复记录?

来自分类Dev

如何处理SQL Server数据库中的重复记录

来自分类Dev

提取数据框中的重复记录

来自分类Dev

如何快速删除mysql中的重复记录

来自分类Dev

计算分页前记录的总大小,并在分页后返回它们,而无需两次访问数据库

来自分类Dev

获得OneToMany关系的“一个”面,而无需在自定义管理器中重复记录

来自分类Dev

ExtJs-从数据库中的记录创建网格

来自分类Dev

从具有唯一标识的重复记录中获取前三条记录

来自分类Dev

在存储到数据库oracle 11g中的同时获取重复记录

来自分类Dev

在数据库中插入ASP.NET重复记录

来自分类Dev

Rails嵌套的fields_for数据库中的重复记录

来自分类Dev

从表中查找重复记录,并删除除最近日期以外的所有记录

来自分类Dev

从访问数据库vb.net在datagridview中显示一条记录

来自分类Dev

lastInsertId()在数据库中创建2个重复记录

来自分类Dev

仅返回数据库中的重复记录

来自分类Dev

如何检查mysql数据库中的重复记录

来自分类Dev

如何从mongodb数据库中删除重复记录

来自分类Dev

我在数据库中有2条记录Vue输出8条记录

来自分类Dev

NPoco InsertBulk() 花了 45 *分钟* 插入 20,000 条记录

来自分类Dev

SQL - 针对不同的数据库服务器查询重复记录

来自分类Dev

从加权关系数据库中删除重复记录

来自分类Dev

删除数据库中除一条记录外的所有记录

Related 相关文章

  1. 1

    ExtJs-从数据库中的记录创建网格

  2. 2

    在数据库中插入ASP.NET重复记录

  3. 3

    使用php形式将记录添加到mysql数据库中,而无需离开/刷新页面

  4. 4

    计算具有不同列名的表中的重复记录

  5. 5

    从表中查找重复记录,并删除除最近日期以外的所有记录

  6. 6

    Puma和Rails-在没有数据库索引的情况下防止重复记录

  7. 7

    Laravel雄辩的更新记录而无需从数据库加载

  8. 8

    更新记录时如何防止数据库中重复记录?

  9. 9

    如何处理SQL Server数据库中的重复记录

  10. 10

    提取数据框中的重复记录

  11. 11

    如何快速删除mysql中的重复记录

  12. 12

    计算分页前记录的总大小,并在分页后返回它们,而无需两次访问数据库

  13. 13

    获得OneToMany关系的“一个”面,而无需在自定义管理器中重复记录

  14. 14

    ExtJs-从数据库中的记录创建网格

  15. 15

    从具有唯一标识的重复记录中获取前三条记录

  16. 16

    在存储到数据库oracle 11g中的同时获取重复记录

  17. 17

    在数据库中插入ASP.NET重复记录

  18. 18

    Rails嵌套的fields_for数据库中的重复记录

  19. 19

    从表中查找重复记录,并删除除最近日期以外的所有记录

  20. 20

    从访问数据库vb.net在datagridview中显示一条记录

  21. 21

    lastInsertId()在数据库中创建2个重复记录

  22. 22

    仅返回数据库中的重复记录

  23. 23

    如何检查mysql数据库中的重复记录

  24. 24

    如何从mongodb数据库中删除重复记录

  25. 25

    我在数据库中有2条记录Vue输出8条记录

  26. 26

    NPoco InsertBulk() 花了 45 *分钟* 插入 20,000 条记录

  27. 27

    SQL - 针对不同的数据库服务器查询重复记录

  28. 28

    从加权关系数据库中删除重复记录

  29. 29

    删除数据库中除一条记录外的所有记录

热门标签

归档