mongodb性能测试

结论:

使用批量插入,10万条记录插入用时3.193秒
使用单条插入,10万条记录插入用时47.878秒
一条记录约8个字段

 

插入的实体

package com.study.mongodb_study.entity;

import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.mapping.Document;
import org.springframework.data.mongodb.core.mapping.Field;

@Document(collection = "user")
public class User {

    @Id
    private String id;
    @Field("username")
    private String username;
    private String password;
    private String registerTime;
    private String phone;
    private String name;
    private String sex;
    private String age;

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public String getRegisterTime() {
        return registerTime;
    }

    public void setRegisterTime(String registerTime) {
        this.registerTime = registerTime;
    }

    public String getPhone() {
        return phone;
    }

    public void setPhone(String phone) {
        this.phone = phone;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }

    public String getAge() {
        return age;
    }

    public void setAge(String age) {
        this.age = age;
    }

    @Override
    public String toString() {
        return "User{" +
                "id='" + id + '\'' +
                ", username='" + username + '\'' +
                ", password='" + password + '\'' +
                ", registerTime='" + registerTime + '\'' +
                ", phone='" + phone + '\'' +
                ", name='" + name + '\'' +
                ", sex='" + sex + '\'' +
                ", age='" + age + '\'' +
                '}';
    }
}

测试方法

package com.study.mongodb_study.service;

import com.study.mongodb_study.entity.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.stereotype.Service;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;


@Service
public class UserService {

    @Autowired
    MongoTemplate mongotemplate;

    public void insertUserList(){
        Date beginDate = new Date();
        List<User> userList = new ArrayList<>(100000);
        for(Integer i=0;i<100000;i++) {
            User user = new User();
            user.setId(i.toString());
            user.setAge(i.toString());
            user.setName("userName" + i.toString());
            user.setPhone("abcd");
            userList.add(user);
        }
        mongotemplate.insertAll(userList);

        Date endDate = new Date();
        System.out.println("use time:" + (endDate.getTime() - beginDate.getTime()));
    }

}

 

posted @ 2019-11-21 16:25  门罗的魔术师  阅读(425)  评论(0)    收藏  举报