MongoDB中在1000万级数据用时70秒,附Java代码和测试数据

Posted 秋9

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MongoDB中在1000万级数据用时70秒,附Java代码和测试数据相关的知识,希望对你有一定的参考价值。

在100万级大数据量插入,MongoDB中速度还相当快的,下面分享插入1000万条数据测试结果。

下面分享Java操作代码

    @Test
    void saveBatch() 
        long start=System.currentTimeMillis();
        int oneNum=5000;
        List<User> insertDataList=new ArrayList(oneNum);
        int totalnum=1000*10000;//1000万
        for(int i=0;i<totalnum;i++)
            User user=new User();
            user.setName("A"+i);
            user.setPassword("A"+i);
            insertDataList.add(user);
            if(insertDataList.size()>=oneNum)
                BulkOperations operations = mongoTemplate.bulkOps(BulkOperations.BulkMode.UNORDERED,"user2");
                operations.insert(insertDataList);
                operations.execute();
                insertDataList=new ArrayList(oneNum);
            
            if(i!=0&&i%1000000==0)
                System.out.println("导入"+i+"条用户数据用时:"+(System.currentTimeMillis()-start)+"毫秒");
            
        
        if(!insertDataList.isEmpty())
            BulkOperations operations = mongoTemplate.bulkOps(BulkOperations.BulkMode.UNORDERED,"user2");
            operations.insert(insertDataList);
            operations.execute();
        
        System.out.println("1000万用户用时:"+(System.currentTimeMillis()-start)+"毫秒");
    

在4核CPU和16G内存的win10台式机,idea开发环境下的测试结果:

导入1000000条用户数据用时:7470毫秒
导入2000000条用户数据用时:14479毫秒
导入3000000条用户数据用时:21450毫秒
导入4000000条用户数据用时:28331毫秒
导入5000000条用户数据用时:35243毫秒
导入6000000条用户数据用时:42138毫秒
导入7000000条用户数据用时:49051毫秒
导入8000000条用户数据用时:55955毫秒
导入9000000条用户数据用时:62885毫秒
1000万用户用时:69857毫秒

以上是关于MongoDB中在1000万级数据用时70秒,附Java代码和测试数据的主要内容,如果未能解决你的问题,请参考以下文章

性能提升数十倍!百万级高并发MongoDB集群优化实践

mongodb千万级写入怎么优化

百万级高并发MongoDB集群性能数十倍提升优化实践(上篇)

百万级高并发mongodb集群性能数十倍提升优化实践(上篇)

WinRar和7-zip压缩比较

MongoDB征文 | OPPO百万级高并发MongoDB集群性能数十倍提升优化实践