我在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 はカーソルからデータを取得します。問題が発生した場合は、まず Google に問い合わせてください。その後、まずファイアウォールを回避する方法を学ぶ必要があります。
データが多ければ多いほど、これに時間がかかります。あなたが提供するデータは、システムが oplog からデータを取得し、それをスレーブ ノードに配布するものです。マスター/スレーブ レプリケーションのようです。
oplog テーブルは、デフォルトではインデックスのない比較的大きなテーブルであるため、最初の走査には長い時間がかかります。