NoSql选型:MongoDB值得选择(一)
程序员文章站
2022-07-14 21:22:18
...
这段时间需要验证一下非关系型数据的特性,于是做了一些简单的验证,后续还可能进一步做一些更为复杂的验证测试。即使是简单的测试,MongoDB给我留下了很好的印象,可以说是惊艳。
从我简单的测试情况来看,读写性能非常好。
服务器环境:suse11,4核cpu,8G内存。
我没有记录详细的测试数据,测试结果参考。
从我简单的测试情况来看,读写性能非常好。
服务器环境:suse11,4核cpu,8G内存。
public class MongoDemo { public static DBCollection coll = null; public static void main(String[] arr) { String host="129.42.13.118"; Mongo m = null; try { m = new Mongo(host, 27017); DB db = m.getDB("resourceDB");//如果没有对应的users数据库,数据库会为此创建一个 //增加一个用户,密码需转换成字符数据 //db.addUser("mongo", "123456".toCharArray()); //System.out.println(db.authenticate("mongo", "123456".toCharArray())); //如果没有对应的userCollection,数据库会创建一个 //coll = db.getCollection("btResCollection"); coll = db.getCollection("resourceCollection"); System.out.println("------------number of data-----------" + coll.getCount()); //buildData();//76054797 System.out.println("------------number of data2-----------" + coll.getCount()); } catch (UnknownHostException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (MongoException e) { // TODO Auto-generated catch block e.printStackTrace(); } } public static void buildData() { System.out.println("------------begin-----------"); for(int k=0;k<10000;k++){ for (int i = 0; i < 30; i++) { new MongoThread().start(); } try { Thread.sleep(3000); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } System.out.println("------------end-----------"); } public static DBObject findDBObject(String id) { ObjectId oid = new ObjectId(id); DBObject query = new BasicDBObject("_id", oid); return query; } } class MongoThread extends Thread { @Override public void run() { for (int i = 0; i < 1000; i++) { long current = System.currentTimeMillis(); DBObject resources = new BasicDBObject(); resources.put("http", "http://sohu.com/pic?id="+i); resources.put("bt", "bhjgk14fjkeikeldoll"); resources.put("out", i); MongoDemo.coll.createIndex(new BasicDBObject("out", -1)); //升序1,-1降序 MongoDemo.coll.insert(resources); System.out.println("------------monogdb insert need time-----------" + (System.currentTimeMillis() - current)); } } }
我没有记录详细的测试数据,测试结果参考。