一、逐条写入性能测试脚本
[root@wlan-cloudserver8 bin]# ./mongo 172.27.8.118:40000
SHARDING_2:PRIMARY> use admin
switched to db admin
SHARDING_2:PRIMARY> db.auth('wlan','wlan')
SHARDING_2:PRIMARY> use estestdbnew
switched to db estestdbnew
SHARDING_2:PRIMARY> for(var i=0;i<1000;i++){db.estestdbnew.insert({name:"new", age:999})}
二、通过命令行批量写入性能测试脚本
var bulk = db.test.initializeUnorderedBulkOp();
for(var i=0;i<100000;i++){bulk.insert( { item: "abc123", defaultQty: 100, status: "A", points: 100 } )} ---写入十万条
bulk.execute();
三、通过代码批量写入性能测试脚本
package mongodbtest; import java.io.IOException; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; import java.util.TimeZone; public class BulkWriting { public static void main(String[] args) throws IOException, ParseException { MongoDBConnector mongoDBConnector = new MongoDBConnector("admin", "admin", "estestdbnew", "172.27.8.110", 27017, "test"); mongoDBConnector.connect(); // mongoDBConnector.insertone(); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS"); sdf.setTimeZone(TimeZone.getTimeZone("GMT+8")); System.out.println("start:" + sdf.format(new Date())); mongoDBConnector.bulkwirte(); System.out.println("finish:" + sdf.format(new Date())); } }
package mongodbtest; import java.util.ArrayList; import java.util.List; import org.bson.Document; import org.bson.conversions.Bson; import com.mongodb.MongoClient; import com.mongodb.MongoCredential; import com.mongodb.ReadPreference; import com.mongodb.ServerAddress; import com.mongodb.bulk.BulkWriteResult; import com.mongodb.client.FindIterable; import com.mongodb.client.MongoCollection; import com.mongodb.client.MongoCursor; import com.mongodb.client.MongoDatabase; import com.mongodb.client.model.InsertOneModel; import com.mongodb.client.model.WriteModel; public class MongoDBConnector { private String mongodbUserName; private String mongodbPassWord; private String mongodbDBName; private String mongodbServerAddr; private int mongodbServerport; private String mongodbCollection; private MongoClient mongoClient; private MongoCollection<Document> collection; public MongoDBConnector(String mongodbUserName, String mongodbPassWord, String mongodbDBName, String mongodbServerAddr, int mongodbServerport, String mongodbCollection) { this.mongodbUserName = mongodbUserName; this.mongodbPassWord = mongodbPassWord; this.mongodbDBName = mongodbDBName; this.mongodbServerAddr = mongodbServerAddr; this.mongodbServerport = mongodbServerport; this.mongodbCollection = mongodbCollection; } public void connect() { ServerAddress serverAddress = new ServerAddress(this.mongodbServerAddr, this.mongodbServerport); List<ServerAddress> addrs = new ArrayList<ServerAddress>(); addrs.add(serverAddress); MongoCredential credential = MongoCredential.createScramSha1Credential(this.mongodbUserName, this.mongodbDBName, this.mongodbPassWord.toCharArray()); List<MongoCredential> credentials = new ArrayList<MongoCredential>(); credentials.add(credential); MongoClient mongoClient = new MongoClient(addrs, credentials); this.mongoClient = mongoClient; MongoDatabase mongoDatabase = mongoClient.getDatabase(this.mongodbDBName) .withReadPreference(ReadPreference.secondary()); MongoCollection<Document> collection = mongoDatabase.getCollection(this.mongodbCollection); this.collection = collection; return; } public MongoCursor<Document> find(Bson filter) { FindIterable<Document> findIterable = this.collection.find(filter);// .batchSize(100000); MongoCursor<Document> mongoCursor = findIterable.iterator(); return mongoCursor; } public void insertone() { Document document = new Document("x", 1); collection.insertOne(document); document.append("x", 2).append("y", 3); System.out.println("insert one document has finished!"); } public void bulkwirte() { List<WriteModel<Document>> writes = new ArrayList<WriteModel<Document>>(); for (int i = 100000; i < 300000; i++) { writes.add(new InsertOneModel<Document>( new Document("_id", i).append("char", "Taeln").append("class", "fighter").append("lvl", 4))); } BulkWriteResult bulkWriteResult = collection.bulkWrite(writes); System.out.println(bulkWriteResult); } public void close() { this.mongoClient.close(); return; } }