首頁 資料庫 mysql教程 Mongodb之insert瞬时完成,带测试数据---飞天博客

Mongodb之insert瞬时完成,带测试数据---飞天博客

Jun 07, 2016 pm 04:01 PM
insert mongodb 完成 數據 測試

这几天在看mongdb官网,然后经运行插入数据,突然发现这个数据确实很强大,这里用数据说话,我用的普通pc机,amd的双核 2.7GHz,4G内存,当然在测试的时候系统不是只作为数据库服务器的,还运行了myeclipse,qq,杀毒软件什么的,当然在测试的时候cpu大约是9

这几天在看mongdb官网,然后经运行插入数据,突然发现这个数据确实很强大,这里用数据说话,我用的普通pc机,amd的双核 2.7GHz,4G内存,当然在测试的时候系统不是只作为数据库服务器的,还运行了myeclipse,qq,杀毒软件什么的,当然在测试的时候cpu大约是95%的负载

具体什么结果呢?

刚开始测的时候,没注意,一下启动了10个线程,每个线程插10000条数据,结果,系统不堪负载,断电黑屏了,这电脑有点问题。这下囧了;

好吧,然后在慢慢的摸索之下,插入10000条数据,改为插入1000条数据,10个线程改为100个线程,测试结果如下:mongodb 100个线程,每个线程insert 1000次,76760 ms 一分10s的样子。关系型数据库还是很厉害的

然后我又具体测试了一下500个线程,每个线程同时插入10条记录,请看下面记录:下面的格式为:线程id:线程完成时间;总共结束时间:5542

262:645 173:4896 388:5057 57:5351
460:561 222:4874 102:5230 149:5387
18:2183 298:4752 109:5233 384:5179
456:2105 301:4768 386:5059 396:5181
46:3060 176:4895 289:5126 32:5352
412:2851 189:4918 268:5132 437:4935
448:2909 133:4933 209:5259 444:4935
462:3363 231:4919 140:5259 101:5357
425:3423 91:4900 348:5116 459:4939
461:3417 72:4898 249:5260 418:4938
458:3507 365:4748 73:5239 451:4940
450:3544 221:4941 389:5074 147:5399
452:3585 99:4927 148:5265 142:5398
428:3662 299:4816 152:5275 404:5193
454:3735 241:4951 286:5119 166:5396
423:3820 243:4967 28:5242 51:5366
259:4270 119:4969 45:5246 202:5367
349:4139 19:5002 107:5249 489:4632
421:3872 363:4792 247:5269 484:4632
188:4285 223:4973 103:5249 442:4948
96:4284 383:4801 245:5271 435:4949
414:4049 25:5023 391:5086 491:4637
426:3881 227:4998 86:5250 495:4637
424:3945 371:4822 83:5252 497:4638
416:4122 225:5008 160:5283 143:5413
33:4384 367:4831 354:5101 499:4641
379:4228 52:4990 116:5253 145:5417
420:3983 179:5019 50:5253 493:4644
310:4275 422:4605 382:5082 480:4646
131:4428 256:5003 90:5256 482:4647
201:4427 121:5070 29:5257 485:4647
67:4410 123:5074 380:5085 487:4648
203:4496 261:5054 242:5259 93:5385
252:4550 39:5057 43:5260 138:5421
308:4477 233:5092 78:5260 483:4653
343:4493 35:5076 127:5287 481:4654
403:4448 417:4723 95:5265 157:5425
3:4685 430:4661 385:5103 465:4659
306:4495 237:5109 183:5290 406:5217
401:4456 125:5111 251:5288 469:4662
230:4626 253:5111 376:5093 471:4664
419:4225 229:5120 64:5268 476:4657
110:4627 239:5120 378:5097 477:4660
94:4640 235:5126 248:5256 467:4664
38:4639 36:5105 270:5168 479:4661
405:4483 273:5006 269:5171 478:4660
126:4659 272:4987 295:5165 473:4670
294:4541 360:4958 181:5298 463:4672
364:4508 192:5122 337:5162 472:4661
134:4681 362:4963 361:5120 408:5228
320:4557 113:5125 198:5278 470:4664
284:4560 62:5126 236:5280 468:4664
359:4538 150:5155 207:5303 79:5404
357:4540 117:5135 373:5120 141:5441
358:4541 7:5200 41:5281 474:4674
296:4575 88:5141 372:5107 429:4986
53:4701 5:5208 10:5351 466:4670
13:4772 114:5143 400:5110 56:5407
54:4708 328:5019 58:5282 431:4987
266:4614 55:5146 312:5160 427:4989
297:4610 283:5040 14:5359 486:4673
255:4741 282:5021 395:5127 475:4684
197:4743 70:5146 369:5132 488:4672
300:4596 316:5024 65:5292 159:5449
375:4563 351:5028 84:5293 492:4675
195:4749 274:5025 156:5326 494:4674
200:4731 254:5138 263:5294 410:5242
69:4731 49:5155 196:5297 490:4677
292:4607 279:5049 144:5330 139:5453
120:4739 336:5033 210:5299 409:5252
311:4628 212:5160 158:5329 433:4997
40:4739 11:5224 281:5194 464:4681
98:4742 250:5146 129:5324 498:4679
37:4744 97:5165 169:5337 208:5422
66:4742 399:5003 162:5332 496:4681
213:4769 74:5171 370:5128 12:5492
106:4748 285:5065 353:5182 500:4677
215:4774 187:5197 394:5131 76:5423
171:4777 340:5050 167:5341 180:5426
350:4632 124:5175 455:4885 333:5313
63:4755 112:5178 185:5331 318:5302
104:4755 47:5180 368:5136 322:5302
288:4630 194:5182 151:5345 218:5428
9:4822 352:5060 163:5348 228:5428
303:4646 75:5183 118:5313 130:5428
68:4757 100:5183 153:5349 238:5431
87:4765 34:5183 338:5190 204:5432
214:4766 332:5062 324:5190 111:5434
366:4591 271:5083 154:5347 27:5434
122:4766 71:5193 377:5156 6:5504
217:4795 258:5179 390:5145 60:5434
244:4784 246:5180 265:5216 182:5438
240:4786 184:5197 4:5389 8:5508
44:4788 161:5218 164:5349 26:5437
287:4703 307:5084 267:5217 331:5327
339:4701 309:5083 1:5394 42:5440
407:4650 15:5263 155:5357 313:5330
193:4839 132:5198 330:5200 24:5439
260:4810 277:5093 342:5200 92:5443
186:4821 257:5220 436:4903 329:5331
128:4819 135:5243 453:4906 345:5323
341:4706 30:5199 447:4908 290:5320
178:4823 397:5037 172:5360 234:5447
335:4709 314:5080 432:4909 327:5334
146:4842 326:5080 445:4912 278:5322
305:4717 80:5205 443:4912 276:5323
226:4831 85:5207 168:5364 325:5339
302:4707 211:5231 402:5161 356:5296
220:4837 77:5210 174:5360 319:5343
224:4837 31:5210 434:4913 381:5292
199:4861 293:5100 446:4916 264:5450
347:4718 22:5210 441:4918 89:5457
219:4865 280:5087 438:4918 108:5457
190:4844 20:5211 457:4920 232:5458
355:4692 315:5108 439:4921 82:5458
115:4848 137:5260 440:4920 16:5514
411:4628 393:5058 398:5172 136:5500
17:4903 48:5221 449:4923 346:5338
413:4637 334:5100 2:5416 291:5352
177:4884 392:5052 21:5400 323:5351
415:4639 206:5226 374:5174 321:5351
61:4864 105:5227 387:5184 344:5340
304:4739 216:5228 23:5402 317:5352
175:4889 59:5228 165:5385 191:5489
275:4764 205:5252 170:5380 81:5467

我这台机器上最大连接数为:500,所以没测试更多,但是看到这上面的效率是很好的啦,前面的线程几乎是秒插入进去。如果要做个500个人同时注册,单机mongodb就是小case。当然加大它的连接数。注意,这是连接数,不是MongoClient的个数,默认实例化mongClient的个数是为1的

从后台可以看到:db.mydb.count() 结果为:5000,说明这次测试结果全部没有出差错,速度之快,当然不用说,也查了一下原因,但和我做的实验实际还是有点出入:

资料如下:

但mongodb的这种操作,客户端将文档发送给服务器之后就like干别的了。客户端也收不到“好的,知道了”或者“有问题,能重新传送一遍嘛?”这类响应。这个特点的有点很明显,速度块,这些操作都会非常块的;但服务器如果出问题,客户端不知道,比如服务器奔溃,断电什么的,客户端还是会继续发送写操作。

但是我下的这个mongodb,还是有出入的,因为当我关闭服务器,客户端报错了!!!证明服务器出问题还是会被检测到。至于发送写操作能否验证是否成功,这个问题,java驱动会返回一个WriterResult结果,里面可以返回最近一次出错信息,想必这个版本默认就设置了“安全操作”,也就是说,插入操作会返回信息,待用户判断是否将上一次为插入成功的数据再一次插入进数据库。“安全操作”在我看来还是很快的,如果将“安全操作”设置为“非安全操作”版,插入速度应该会更快

这里附上mongodb的java驱动之crud

public class MongoTest {	

	public static void main(String[] args) throws UnknownHostException {
		MongoClient mongoClient = new MongoClient( "localhost" , 30000 );
		DB db = mongoClient.getDB( "mytest" );
	// 返回当前的数据库名称
//		Set<String> colls = db.getCollectionNames();
//		
//		for (String s : colls) {
//		    System.out.println(s);
//		}
		DBCollection collection=db.getCollection("test");
		BasicDBObject doc = new BasicDBObject("name", "xiaohua2");
		collection.insert(doc);
			System.out.println(collection.count());
		mongoClient.close();
		/*
	
		//得到一个集合,这个集合就是用来做crud的接口
		DBCollection coll = db.getCollection("mydb");
		//插入一个document,和sql的表差不多
		//The _id element has been added automatically by MongoDB to your document.
		//Remember, MongoDB reserves element names that start with &ldquo;_&rdquo;/&rdquo;$&rdquo; for internal use
		BasicDBObject doc = new BasicDBObject("name", "MongoDB")
        .append("type", "database")
        .append("count", 1)
        .append("info", new BasicDBObject("x", 203).append("y", 102));
		coll.insert(doc);
		//得到第一条document
		DBObject myDoc = coll.findOne();
		System.out.println(myDoc);
		//多条数据插入
		for (int i=0; i < 100; i++) {
		    coll.insert(new BasicDBObject("i", i));
		}
		//统计document的行数
		System.out.println(coll.getCount());
		
		//使用游标
		DBCursor cursor = coll.find();
		try {
		   while(cursor.hasNext()) {
		       System.out.println(cursor.next());
		   }
		} finally {
		   cursor.close();
		}
		mongoClient.close();
		//查询
//		BasicDBObject query = new BasicDBObject("i", 71);
//		cursor = coll.find(query);
//
//		try {
//		   while(cursor.hasNext()) {
//		       System.out.println(cursor.next());
//		   }
//		} finally {
//		   cursor.close();
//		}
		  */
	}
}
登入後複製

注意记得将mongoclient close掉

备注,如果转载:请标明出处blog.csdn.net/xh199110 飞天博客

如果有写的不对的地方,欢迎指正。作者也是看官网,查资料,加上自己的理解,写了这篇文章,以便大家一起来学习,谢谢

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

<🎜>:泡泡膠模擬器無窮大 - 如何獲取和使用皇家鑰匙
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系統,解釋
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1664
14
CakePHP 教程
1423
52
Laravel 教程
1321
25
PHP教程
1269
29
C# 教程
1249
24
使用 Composer 解決推薦系統的困境:andres-montanez/recommendations-bundle 的實踐 使用 Composer 解決推薦系統的困境:andres-montanez/recommendations-bundle 的實踐 Apr 18, 2025 am 11:48 AM

在開發一個電商網站時,我遇到了一個棘手的問題:如何為用戶提供個性化的商品推薦。最初,我嘗試了一些簡單的推薦算法,但效果並不理想,用戶的滿意度也因此受到影響。為了提升推薦系統的精度和效率,我決定採用更專業的解決方案。最終,我通過Composer安裝了andres-montanez/recommendations-bundle,這不僅解決了我的問題,還大大提升了推薦系統的性能。可以通過一下地址學習composer:學習地址

如何在Debian上配置MongoDB自動擴容 如何在Debian上配置MongoDB自動擴容 Apr 02, 2025 am 07:36 AM

本文介紹如何在Debian系統上配置MongoDB實現自動擴容,主要步驟包括MongoDB副本集的設置和磁盤空間監控。一、MongoDB安裝首先,確保已在Debian系統上安裝MongoDB。使用以下命令安裝:sudoaptupdatesudoaptinstall-ymongodb-org二、配置MongoDB副本集MongoDB副本集確保高可用性和數據冗餘,是實現自動擴容的基礎。啟動MongoDB服務:sudosystemctlstartmongodsudosys

MongoDB在Debian上的高可用性如何保障 MongoDB在Debian上的高可用性如何保障 Apr 02, 2025 am 07:21 AM

本文介紹如何在Debian系統上構建高可用性的MongoDB數據庫。我們將探討多種方法,確保數據安全和服務持續運行。關鍵策略:副本集(ReplicaSet):利用副本集實現數據冗餘和自動故障轉移。當主節點出現故障時,副本集會自動選舉新的主節點,保證服務的持續可用性。數據備份與恢復:定期使用mongodump命令進行數據庫備份,並製定有效的恢復策略,以應對數據丟失風險。監控與報警:部署監控工具(如Prometheus、Grafana)實時監控MongoDB的運行狀態,並

Navicat查看MongoDB數據庫密碼的方法 Navicat查看MongoDB數據庫密碼的方法 Apr 08, 2025 pm 09:39 PM

直接通過 Navicat 查看 MongoDB 密碼是不可能的,因為它以哈希值形式存儲。取回丟失密碼的方法:1. 重置密碼;2. 檢查配置文件(可能包含哈希值);3. 檢查代碼(可能硬編碼密碼)。

CentOS MongoDB備份策略是什麼 CentOS MongoDB備份策略是什麼 Apr 14, 2025 pm 04:51 PM

CentOS系統下MongoDB高效備份策略詳解本文將詳細介紹在CentOS系統上實施MongoDB備份的多種策略,以確保數據安全和業務連續性。我們將涵蓋手動備份、定時備份、自動化腳本備份以及Docker容器環境下的備份方法,並提供備份文件管理的最佳實踐。手動備份:利用mongodump命令進行手動全量備份,例如:mongodump-hlocalhost:27017-u用戶名-p密碼-d數據庫名稱-o/備份目錄此命令會將指定數據庫的數據及元數據導出到指定的備份目錄。

CentOS上GitLab的數據庫如何選擇 CentOS上GitLab的數據庫如何選擇 Apr 14, 2025 pm 04:48 PM

CentOS系統上GitLab數據庫部署指南選擇合適的數據庫是成功部署GitLab的關鍵步驟。 GitLab兼容多種數據庫,包括MySQL、PostgreSQL和MongoDB。本文將詳細介紹如何選擇並配置這些數據庫。數據庫選擇建議MySQL:一款廣泛應用的關係型數據庫管理系統(RDBMS),性能穩定,適用於大多數GitLab部署場景。 PostgreSQL:功能強大的開源RDBMS,支持複雜查詢和高級特性,適合處理大型數據集。 MongoDB:流行的NoSQL數據庫,擅長處理海

Debian MongoDB如何進行數據加密 Debian MongoDB如何進行數據加密 Apr 12, 2025 pm 08:03 PM

在Debian系統上為MongoDB數據庫加密,需要遵循以下步驟:第一步:安裝MongoDB首先,確保您的Debian系統已安裝MongoDB。如果沒有,請參考MongoDB官方文檔進行安裝:https://docs.mongodb.com/manual/tutorial/install-mongodb-on-debian/第二步:生成加密密鑰文件創建一個包含加密密鑰的文件,並設置正確的權限:ddif=/dev/urandomof=/etc/mongodb-keyfilebs=512

MongoDB 與關係數據庫:全面比較 MongoDB 與關係數據庫:全面比較 Apr 08, 2025 pm 06:30 PM

MongoDB與關係型數據庫:深度對比本文將深入探討NoSQL數據庫MongoDB與傳統關係型數據庫(如MySQL和SQLServer)的差異。關係型數據庫採用行和列的表格結構組織數據,而MongoDB則使用靈活的面向文檔模型,更適應現代應用的需求。主要區別數據結構:關係型數據庫使用預定義模式的表格存儲數據,表間關係通過主鍵和外鍵建立;MongoDB使用類似JSON的BSON文檔存儲在集合中,每個文檔結構可獨立變化,實現無模式設計。架構設計:關係型數據庫需要預先定義固定的模式;MongoDB支持

See all articles