Get the App
SLTechnology News&Howtos  ›  Database  › 

How to query slow logs and create indexes by mongo

Shulou Source: shulou.com Published: 2022-05-31 15:12:49 10月19日 Update

This article is about how mongo queries slow logs and creates indexes. The editor thinks it is very practical, so share it with you as a reference and follow the editor to have a look.

1. Check whether the mongodb slow log is on.

Use LogDB

Db.getProfilingStatus ()

two。 Open the slow log and set the operation for more than 100 milliseconds as a slow operation

Db.setProfilingLevel (1100)

3. View slow log content

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

Journal,

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 ("0000000000000000000000000"), "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": "x8600064", "version": "6.3.9600"}, "platform": ".NET Framework 4.0.0.0", "mongos": {"host": "new-mongo01:20000", "client": "10.205.33.32 name 59518" "version": "3.6.9"}, "$configServerState": {"opTime": {"ts": Timestamp (1558696196, 12), "t": NumberLong (3)}}, "$db": "LogDB"}, "keysExamined": 0, "docsExamined": 37428, "cursorExhausted": true, "numYield": 37428 "locks": {"Global": {"acquireCount": {"r": NumberLong}}, "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": 37428 "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"}

Note that COLLSCAN is a full table scan.

View the execution plan:

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": 10x0493111

}

}

"winningPlan": {

"stage": "COLLSCAN"

Tags: Index log query content ascending order field more article good practical representative information can pass effect article see knowledge middle name reference help Apple Docker Huawei Linux macOS MariaDB Microsoft MySQL NVidia OPPO Reno Huawei Redmi Apple Xiaomi Linux