﻿public void mongoDBPerformaceTest() {
		int settingRows = 1000000;
		long start = 0;
		long end = 0;		

		// 프로그램 본문
		DB db = new MongoDBUtil().getDB("testperform");
        DBCollection col = db.getCollection("testing");

        System.out.println("Create Index for testing");
		col.createIndex(new BasicDBObject("article_id", 1));
        
        for(int j = 0; j < 10; j++){
	        System.out.println("===========" + j +"번째 Insert 시작============");
	        start = System.currentTimeMillis();
	        for (int i = 0; i < settingRows; i++) {
	        	String dummy = String.valueOf(i);
		        BasicDBObject doc = new BasicDBObject();	        
		        doc.put("id", "12345" + dummy);
		        doc.put("date", new Date());
		        
		        col.insert(doc);	        
	        }
	        
	        end = System.currentTimeMillis();
	        System.out.println(settingRows + "건 Insert 완료");	
			System.out.println( "실행 시간 : " + ( end - start )/1000.0 + "sec" );
			System.out.println();
			
			//Select
      System.out.println("===========" + j +"번째 Select 시작============");
      start = System.currentTimeMillis();
      for (int i = 0; i < settingRows; i++) {
      	String dummy = String.valueOf(i);
        BasicDBObject query = new BasicDBObject();	        
        query.put("id", "12345" + dummy);
        		        
        col.findOne(query);	        
      }
      
      end = System.currentTimeMillis();
      System.out.println(settingRows + "건 Select 완료");	
			System.out.println( "실행 시간 : " + ( end - start )/1000.0 + "sec");
			System.out.println();			
			
			//Delete
			System.out.println("===========" + j +"번째 Delete 시작============");
			start = System.currentTimeMillis();
	        for (int i = 0; i < settingRows; i++) {
	        	String dummy = String.valueOf(i);
		        BasicDBObject query = new BasicDBObject();	        
		        query.put("id", "12345" + dummy);		     
		        
		        col.remove(query);	     
	        }		
			
	        end = System.currentTimeMillis();
	        System.out.println(settingRows + "건 Delete 완료");	
			System.out.println( "실행 시간 : " + ( end - start )/1000.0  + "sec");
			System.out.println();
        }
	}//method	
