時(shí)間:2024-02-21 13:55作者:下載吧人氣:23
結(jié)論:
1、 200w數(shù)據(jù),合理使用索引的情況下,單個(gè)stationId下4w數(shù)據(jù)。mongodb查詢和排序的性能理想,無(wú)正則時(shí)client可以在600ms+完成查詢,qps300+。有正則時(shí)client可以在1300ms+完成查詢,qps140+。
2、 Mongodb的count性能比較差,非并發(fā)情況下client可以在330ms完成查詢,在并發(fā)情況下則需要1-3s。可以考慮估算總數(shù)的方法,http://blog.sina.com.cn/s/blog_56545fd30101442b.html
測(cè)試環(huán)境:mongodb使用 replica set,1主2從,96G內(nèi)存,版本2.6.5
Mem消耗(4個(gè)200w數(shù)據(jù)的collection):
空間消耗(測(cè)試數(shù)據(jù)最終選定的collection):
Jvm: -Xms2G -Xmx2G
Ping延遲33ms
查詢都使用ReadPreference.secondaryPreferred()
無(wú)正則
1、 創(chuàng)建stationId, firmId復(fù)合引查詢場(chǎng)景(200w集合,12個(gè)字段)
查詢次數(shù):20000
查詢條件:多條件查詢10條記錄,并逐條獲取記錄
String key = “清泉” + r.nextInt(1000);
Pattern pattern = Pattern.compile(key);
BasicDBObject queryObject = new BasicDBObject(“stationId”,
new BasicDBObject(“$in”, new Integer[]{20}))
.append(“firmId”, new BasicDBObject(“$gt”, 5000))
.append(“dealCount”, new BasicDBObject(“$gt”, r.nextInt(1000000))); DBCursor cursor = collection.find(queryObject).limit(10).skip(2);
網(wǎng)友評(píng)論