時間:2024-02-21 13:55作者:下載吧人氣:22
結論:
1、 200w數據,合理使用索引的情況下,單個stationId下4w數據。mongodb查詢和排序的性能理想,無正則時client可以在600ms+完成查詢,qps300+。有正則時client可以在1300ms+完成查詢,qps140+。
2、 Mongodb的count性能比較差,非并發情況下client可以在330ms完成查詢,在并發情況下則需要1-3s。可以考慮估算總數的方法,http://blog.sina.com.cn/s/blog_56545fd30101442b.html
測試環境:mongodb使用 replica set,1主2從,96G內存,版本2.6.5
Mem消耗(4個200w數據的collection):
空間消耗(測試數據最終選定的collection):
Jvm: -Xms2G -Xmx2G
Ping延遲33ms
查詢都使用ReadPreference.secondaryPreferred()
無正則
1、 創建stationId, firmId復合引查詢場景(200w集合,12個字段)
查詢次數: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);
網友評論