lxiaodao 发表于 2013-1-30 01:53:26

NoSql选型:MongoDB值得选择(一)

这段时间需要验证一下非关系型数据的特性,于是做了一些简单的验证,后续还可能进一步做一些更为复杂的验证测试。即使是简单的测试,MongoDB给我留下了很好的印象,可以说是惊艳。
从我简单的测试情况来看,读写性能非常好。
服务器环境: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));      }                   }}
我没有记录详细的测试数据,测试结果参考。
页: [1]
查看完整版本: NoSql选型:MongoDB值得选择(一)