我在mongodb命令列運行db.currentOp(),返回結果中出現"op" : "getmore",,請問getmore是什麼操作?而且特別耗時:
>db.currentOp()
{
"inprog" : [
{
"opid" : 821006778,
"active" : true,
"secs_running" : 0,
"microsecs_running" : NumberLong(252939),
"op" : "getmore",
"ns" : "local.oplog.$main",
"query" : {
},
"client" : "10.171.53.62:34632",
"desc" : "conn9912",
"threadId" : "0x7f9665e39700",
"connectionId" : 9912,
"waitingForLock" : false,
"numYields" : 0,
"lockStats" : {
"timeLockedMicros" : {
"r" : NumberLong(14),
"w" : NumberLong(0)
},
"timeAcquiringMicros" : {
"r" : NumberLong(1),
"w" : NumberLong(0)
}
}
}
]
}
getmore是從遊標中取數據,遇到問題可以先問谷歌,那麼得先學會翻牆……
你的數據越多它花的時間越多,這是正常的。你提供的資料是系統在從oplog中拉資料分發到從結點,看起來是master/slave複製。
oplog表是一個沒有索引預設又會比較大的表,所以第一次遍歷的時候會花比較長的時間。