久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

mongo如何查詢慢日志以及創建索引

156次閱讀
沒有評論

共計 3539 個字符,預計需要花費 9 分鐘才能閱讀完成。

這篇文章給大家分享的是有關 mongo 如何查詢慢日志以及創建索引的內容。丸趣 TV 小編覺得挺實用的,因此分享給大家做個參考,一起跟隨丸趣 TV 小編過來看看吧。

1. 查看 mongodb 慢日志是否開起

use LogDB;

db.getProfilingStatus();

2. 開啟慢日志,設置超過 100 毫秒的操作為慢操作

db.setProfilingLevel(1,100); 

3. 查看慢日志內容

db.system.profile.find().sort({$natural:-1})

日志,

shard3:PRIMARY db.system.profile.find().sort({$natural:-1})

{op : query , ns : LogDB.Flashxxx , command : { find : Flashxxx , filter : { UserId : { $in : [ 1111111] } }, shardVersion : [Timestamp(0, 0), ObjectId(000000000000000000000000) ], lsid : {id : UUID( d08179ba-ecbd-4f9d-92e7-cd491e5a1d8a), uid : BinData(0, iwsImy7Wfk2mAp4o/uuD+I9mpETQTxb5PXo26pIQkS4=) }, $clusterTime : {clusterTime : Timestamp(1558696199, 3), signature : {hash : BinData(0, Ht7EWhYpVLiy+DbH8Cu1Ijs6PNk=), keyId : NumberLong(6647500774429425691) } }, $client : {driver : { name : mongo-csharp-driver , version : 2.7.0.0}, os : {type : Windows , name : Microsoft Windows 6.3.9600 , architecture : x86_64 , version : 6.3.9600}, platform : .NET Framework 4.0.0.0 , mongos : {host : new-mongo01:20000 , client : 10.205.33.32:59518 , version : 3.6.9} }, $configServerState : {opTime : { ts : Timestamp(1558696196, 12), t : NumberLong(3) } }, $db : LogDB }, keysExamined : 0, docsExamined : 37428, cursorExhausted : true, numYield : 292, locks : {Global : { acquireCount : { r : NumberLong(586) } }, Database : {acquireCount : { r : NumberLong(293) } }, Collection : {acquireCount : { r : NumberLong(293) } } }, nreturned : 1, responseLength : 673, protocol : op_msg , millis : 104, planSummary : COLLSCAN , execStats : {stage : COLLSCAN , filter : { UserId : { $eq : 11111111115} }, nReturned : 1, executionTimeMillisEstimate : 100, works : 37430, advanced : 1, needTime : 37428, needYield : 0, saveState : 292, restoreState : 292, isEOF : 1, invalidates : 0, direction : forward , docsExamined : 37428 }, ts : ISODate(2019-05-24T11:09:59.346Z), client : 10.205.34.91 , allUsers : [{ user : __system , db : local} ], user : __system@local }

注意 COLLSCAN 是全表掃描。

查看執行計劃:

 db.FlashClientData.find({UserId: 1000493111}).explain() 

 shard3:PRIMARY   db.FlashClientData.find({UserId: 100049111}).explain() 

{

        queryPlanner : {

                plannerVersion : 1,

                namespace : LogDB.Flashxxx ,

                indexFilterSet : false,

                parsedQuery : {

                        UserId : {

                                $eq : 10×0493111

                        }

                },

                winningPlan : {

                        stage : COLLSCAN , —- 全表掃描

                        filter : {

                                UserId : {

                                        $eq : 10×0493111

                                }

                        },

                        direction : forward

                },

                rejectedPlans : []

        },

創建索引:

db.Flashxxx.createIndex({UserId: 1} )  // 按 age 字段創建升序索引

db.Flashxxx.getIndexes() // 查詢集合的索引信息

shard3:PRIMARY   db.FlashClientData.find({UserId: 100049111}).explain() 

{

        queryPlanner : {

                plannerVersion : 1,

                namespace : LogDB.FlashClientData ,

                indexFilterSet : false,

                parsedQuery : {

                        UserId : {

                                $eq :
100049111

                        }

                },

                winningPlan : {

                        stage : FETCH ,

                        inputStage : {

                                stage : IXSCAN ,,

                                keyPattern : {

                                        UserId : 1

                                },

                                indexName : UserId_1 ,

                                isMultiKey : false,

                                multiKeyPaths : {

                                        UserId : []

                                },

                                isUnique : false,

刪除指定的索引 dropIndex()

db.COLLECTION_NAME.dropIndex(INDEX-NAME)

如,刪除集合 sites 中名為 name_1_domain_-1 的索引:

單字段索引(Single Field Index)

    db.person.createIndex({age: 1} ) 

{age: 1} 代表升序索引,也可以通過 {age: -1} 來指定降序索引,對于單字段索引,升序 / 降序效果是一樣的。

單索引創建唯一索引,如:

db.persons.createIndex({name:1},{unique:true})

復合索引 (Compound Index)

db.person.createIndex({age: 1, name: 1} ) 

多 key 索引(Multikey Index)   

{name : jack , age : 19, habbit: [ football, runnning]}

db.person.createIndex({habbit: 1} )  // 自動創建多 key 索引

db.person.find({habbit: football} )

感謝各位的閱讀!關于“mongo 如何查詢慢日志以及創建索引”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-07-24發表,共計3539字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 南郑县| 成都市| 仁化县| 临洮县| 南岸区| 始兴县| 嘉黎县| 思茅市| 临夏县| 运城市| 南皮县| 峡江县| 石狮市| 会理县| 孙吴县| 遂宁市| 舟曲县| 阳高县| 深圳市| 吕梁市| 和硕县| 三亚市| 布尔津县| 宜昌市| 云龙县| 栾川县| 元江| 彝良县| 类乌齐县| 石屏县| 鹰潭市| 军事| 成武县| 米林县| 汽车| 托克逊县| 宁化县| 永嘉县| 蕉岭县| 上杭县| 丹寨县|