服務器配置:
32G記憶體
CPU:8核
硬碟 raid5
dellR720
系統:centos5.12x64
mongodb版本:3.0.7(2.6試過也是一樣)
以上是服務器配置和系統,最近上mongodb資料庫,資料量只有500-600W,普通查詢速度很正常,但是使用aggregate的group聚合查詢,速度就經常在5s+,索引也加了,想請教下可以從哪方面入手排查排查?
陳述句:
db.getCollection('Statistics').aggregate([
{
"$match": {
"dateline": {
"$gte": 1443628800,
"$lte": 1445270400
},
"tid": {
"$gt": 0
}
}
},
{
"$group": {
"_id": "$tid",
"event1": {
"$sum": 1
}
}
},
{
"$sort": {
"tid": -1
}
},
{
"$skip": 0
},
{
"$limit": 10
}
])
索引:
> db.Statistics.getIndexes()
[
{
"v" : 1,
"key" : {
"_id" : 1
},
"name" : "_id_",
"ns" : "dbname.Statistics"
},
{
"v" : 1,
"key" : {
"dateline" : 1
},
"name" : "dateline_1",
"ns" : "dbname.Statistics"
},
{
"v" : 1,
"key" : {
"tid" : 1
},
"name" : "tid_1",
"ns" : "dbname.Statistics"
},
{
"v" : 1,
"key" : {
"tid" : 1,
"dateline" : 1
},
"name" : "tid_1_dateline_1",
"ns" : "dbname.Statistics"
}
]
uj5u.com熱心網友回復:
都沒人的嗎??uj5u.com熱心網友回復:
加一個db.Statistics.createIndex( { tid: 1, zipcode: -1 } )刪掉最后一個索引
uj5u.com熱心網友回復:
zipcode是? 不是太懂?uj5u.com熱心網友回復:
解決了么???uj5u.com熱心網友回復:
關于mongodb聚合查詢效率問題,可以參考這個官方的Mongodb論壇http://forum.foxera.com/mongodb/topic/746/%E8%AF%B7%E6%95%99%E4%B8%8Bmongodb%E8%81%9A%E5%90%88%E6%9F%A5%E8%AF%A2mapreduce%E5%92%8Caggregate%E7%9A%84%E5%8C%BA%E5%88%AB-%E6%80%A7%E8%83%BD%E4%B8%8A%E6%AF%94%E8%BE%83%E4%BD%BF%E7%94%A8%E5%93%AA%E4%B8%AA%E6%9B%B4%E5%A5%BD?un=109
uj5u.com熱心網友回復:
索引使用有問題,{
"v" : 1,
"key" : {
"dateline" : 1,
"tid" : 1
}
}
這樣才對, 但是最耗時的操作還是在group 里
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/116663.html
標籤:MongoDB
