Latest web development tutorials
×

MongoDB หลักสูตร

MongoDB หลักสูตร NoSQL แนะนำโดยย่อ MongoDB แนะนำโดยย่อ Window ติดตั้ง MongoDB Linux ติดตั้ง MongoDB MongoDB การแปลความหมายของแนวคิด MongoDB สัมพันธ์ MongoDB การสร้างฐานข้อมูล MongoDB ลบฐานข้อมูล MongoDB แทรกเอกสาร MongoDB การปรับปรุงเอกสาร MongoDB การลบเอกสาร MongoDB เอกสารแบบสอบถาม MongoDB ผู้ประกอบการที่มีเงื่อนไข MongoDB $type ผู้ประกอบการ MongoDB Limit & Skip MongoDB ลำดับ MongoDB ดัชนี MongoDB การรวมตัว MongoDB สำเนา MongoDB ชิ้น MongoDB สำรองและกู้คืน MongoDB หน้าจอ MongoDB Java MongoDB PHP กระจาย MongoDB PHP MongoDB PHP7

MongoDB การสอนที่ทันสมัย

MongoDB ความสัมพันธ์ MongoDB อ้างอิงฐานข้อมูล MongoDB ครอบคลุมแบบสอบถามดัชนี MongoDB การวิเคราะห์แบบสอบถาม MongoDB การดำเนินงานของอะตอม MongoDB การจัดทำดัชนีขั้นสูง MongoDB ข้อ จำกัด ของดัชนี MongoDB ObjectId MongoDB Map Reduce MongoDB ค้นหาข้อความเต็ม MongoDB นิพจน์ปกติ MongoDB เครื่องมือการจัดการ MongoDB GridFS MongoDB ชุดถาวร MongoDB การเจริญเติบโตอัตโนมัติ

การวิเคราะห์แบบสอบถาม MongoDB

แบบสอบถาม MongoDB และการวิเคราะห์เพื่อให้เกิดประสิทธิภาพของดัชนีเสนอของเราเป็นเครื่องมือสำคัญในการค้นหาการวิเคราะห์ประสิทธิภาพ

การวิเคราะห์แบบสอบถาม MongoDB ฟังก์ชั่นที่ใช้กันทั่วไปคืออธิบาย () และคำใบ้ ()


ใช้อธิบาย ()

อธิบายการดำเนินการให้ข้อมูลแบบสอบถามใช้ดัชนีและแบบสอบถามสถิติ ช่วยให้เราเพื่อเพิ่มประสิทธิภาพของดัชนี

ต่อไปเราจะสร้างดัชนีเพศและผู้ใช้ user_name ในคอลเลกชันนี้:

>db.users.ensureIndex({gender:1,user_name:1})
</p>
<p>现在在查询语句中使用 explain :</p>
<pre>
>db.users.find({gender:"M"},{user_name:1,_id:0}).explain()

ดังกล่าวข้างต้นอธิบาย () แบบสอบถามส่งกลับผลลัพธ์ต่อไปนี้:

{
   "cursor" : "BtreeCursor gender_1_user_name_1",
   "isMultiKey" : false,
   "n" : 1,
   "nscannedObjects" : 0,
   "nscanned" : 1,
   "nscannedObjectsAllPlans" : 0,
   "nscannedAllPlans" : 1,
   "scanAndOrder" : false,
   "indexOnly" : true,
   "nYields" : 0,
   "nChunkSkips" : 0,
   "millis" : 0,
   "indexBounds" : {
      "gender" : [
         [
            "M",
            "M"
         ]
      ],
      "user_name" : [
         [
            {
               "$minElement" : 1
            },
            {
               "$maxElement" : 1
            }
         ]
      ]
   }
}

ตอนนี้เรามองไปที่เขตของชุดผลลัพธ์:

  • indexOnly: ข้อมูลเป็นความจริงที่เราใช้ดัชนี
  • เคอร์เซอร์: เพราะคำนี้ใช้ดัชนีดัชนี MongoDB จะถูกเก็บไว้ในโครงสร้าง B ต้นไม้จึงยังใช้ประเภท BtreeCursor ของเคอร์เซอร์ หากคุณไม่ได้ใช้ดัชนีชนิดเคอร์เซอร์อยู่ BasicCursor คีย์นี้จะให้ชื่อของดัชนีที่คุณกำลังใช้คุณสามารถดูโดยชื่อ system.indexes ตั้งภายใต้ฐานข้อมูลปัจจุบัน (ที่สร้างขึ้นโดยอัตโนมัติเนื่องจากข้อมูลดัชนีจะถูกเก็บไว้นี้จะถูกกล่าวถึงน้อย) เพื่อให้ได้ดัชนีข้อมูลเพิ่มเติม .
  • N: จำนวนของเอกสารกลับโดยการค้นหาปัจจุบัน
  • nscanned / nscannedObjects: สอบถามรายละเอียดเพิ่มเติมได้แสดงให้เห็นว่าจำนวนปัจจุบันของเอกสารที่สแกนในการเก็บรวบรวมจุดมุ่งหมายของเราคือการทำให้ค่านี้และส่งกลับจำนวนของเอกสารที่ใกล้ชิดที่ดีกว่า
  • มิลลิวินาที: เวลาปัจจุบันจำนวนมิลลิวินาทีที่จำเป็นโดยแบบสอบถาม
  • indexBounds: การใช้งานเฉพาะดัชนีการค้นหาปัจจุบัน

ใช้คำใบ้ ()

ในขณะที่การเพิ่มประสิทธิภาพการค้นหา MongoDB ทั่วไปทำงานดีมาก แต่คุณยังสามารถใช้คำแนะนำที่จะบังคับให้ MongoDB ใช้ดัชนีที่ระบุ

วิธีการนี้จะช่วยเพิ่มประสิทธิภาพในบางกรณี ดัชนีของคอลเลกชันและดำเนินการแบบสอบถามมากกว่าหนึ่งสาขา (สาขาบางส่วนได้รับการจัดทำดัชนี)

ตัวอย่างใช้แบบสอบถามต่อไปนี้ระบุเพศและดัชนี user_name เขตข้อมูลแบบสอบถาม:

>db.users.find({gender:"M"},{user_name:1,_id:0}).hint({gender:1,user_name:1})

คุณสามารถใช้อธิบาย () ฟังก์ชันที่จะแยกแบบสอบถามด้านบน:

>db.users.find({gender:"M"},{user_name:1,_id:0}).hint({gender:1,user_name:1}).explain()