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

x33g5p2x  于2022-01-06 转载在 Go  
字(1.3k)|赞(0)|评价(0)|浏览(363)

在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毫秒

相关文章