====Mongodb 并发批量kill session =============
并发、批量kill session
1、将查询时间超过1000s的所有session kill掉
db.currentOp().inprog.forEach(function(item){if(item.secs_running > 1000 && item.op == "query")db.killOp(item.opid)})
2、将所有包含集合jack.bear查询kill掉
db.currentOp().inprog.forEach(function(item){if(item.ns == "jack.bear" && item.op == "query")db.killOp(item.opid)})
3、将满足item.op=="query" && item.secs_running >60 && item.ns=="jack.bear"这3个条件的操作kill掉
db.currentOp().inprog.forEach(function(item){if(item.waitingForLock){var lock_info = item["opid"];if(item.op=="query" && item.secs_running >60 && item.ns=="cswuyg.cswuyg"){db.killOp(item.opid)}}})
4、将满足item.op == "query" && item.secs_running > 1000这2个条件的操作kill掉
db.currentOp().inprog.forEach(function(item) {
var lock_info = item["opid"];
if (item.op == "query" && item.secs_running > 1000) {
print("kill", item.opid);
db.killOp(item.opid)
}
})
################# MongoDB 执行计划################
Stage 分类
COLLSCAN:扫描整个集合 IXSCAN:索引扫描 FETCH:根据索引去检索选择document
SHARD_MERGE:将各个分片返回数据进行merge
SORT:表明在内存中进行了排序(与老版本的scanAndOrder:true一致)
LIMIT:使用limit限制返回数
SKIP:使用skip进行跳过 IDHACK:针对_id进行查
SHARDING_FILTER:通过mongos对分片数据进行查询
COUNT:利用db.coll.explain().count()之类进行count
COUNTSCAN:count不使用用Index进行count时的stage返回
COUNT_SCAN:count使用了Index进行count时的stage返回 SUBPLA:未使用到索引的$or查询的stage返回
TEXT:使用全文索引进行查询时候的stage返回 PROJECTION:限定返回字段时候stage的返回
=========重建索引=======
重建索引:
db.tableName.dropIndex("indexName")
db.tableName.ensureIndex({ "key1" : 1 ,"key2":1},{ "name" : "indexName" },{background:true})
db.COLLECTION_NAME.ensureIndex({"uuid":-1},{background:true})
db.COLLECTION_NAME.getIndexes()
==查看执行计划===
db.collection_name.find({}).explain(true)
find{} 里面要设置具体的查询条件,才可以查到精确的执行计划
MongoDB 查看执行计划时,最理想状态:--20180604
nReturned=totalDocsExamined=totalKeysExamined
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/28211342/viewspace-2213163/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/28211342/viewspace-2213163/