ประโยชน์และต้นทุนของดัชนีในฐานข้อมูล NoSQL
เผยแพร่แล้ว: 2023-03-03โดยทั่วไป ควรใช้ดัชนีใน ฐานข้อมูล Nosql เมื่อประสิทธิภาพการสืบค้นเป็นปัญหา ดัชนีสามารถช่วยเพิ่มความเร็วในการดำเนินการค้นหาโดยอนุญาตให้ฐานข้อมูลค้นหาข้อมูลที่ต้องการได้อย่างรวดเร็ว อย่างไรก็ตาม ดัชนียังสามารถชะลอการเขียนและใช้พื้นที่จัดเก็บเพิ่มเติม ด้วยเหตุนี้ จึงเป็นสิ่งสำคัญที่ต้องพิจารณาอย่างรอบคอบว่าประโยชน์ของการใช้ดัชนีมีมากกว่าค่าใช้จ่ายหรือไม่
เป็นระบบจัดการฐานข้อมูลเชิงเอกสารที่ใช้บริการเว็บ RESTful มีความสามารถในการจัดเก็บข้อมูลจำนวนมากในเอกสารที่มีขนาดและโครงสร้างที่หลากหลาย หนึ่งในเครื่องมือที่สำคัญที่สุดสำหรับผู้ดูแลระบบฐานข้อมูลคือการมีดัชนี เป้าหมายของบทช่วยสอนนี้คือการอธิบายวิธีการทำงานของดัชนี วิธีการสร้างดัชนี และเพื่อแสดงว่าฐานข้อมูลใช้งานดัชนีอย่างไร โครงสร้างข้อมูลแบบดัชนีเป็นโครงสร้างข้อมูลชนิดพิเศษที่เก็บเพียงส่วนหนึ่งของข้อมูลที่รวบรวมมาจากคอลเล็กชัน เนื่องจากมีการใช้งานในลักษณะที่สามารถสำรวจฐานข้อมูลได้อย่างรวดเร็วและง่ายดาย MongoDB จึงเหมาะสมอย่างยิ่งสำหรับจุดประสงค์นี้ ในคู่มือนี้ เราจะสอนวิธีสร้างฐานข้อมูลตัวอย่างและวิธีทำดัชนี
บทช่วยสอนนี้จะสอนวิธีสร้างชุดเอกสารที่มีฟิลด์ต่างๆ ภูเขาเหล่านี้มีรายชื่ออยู่ในเอกสาร ซึ่งอธิบายถึงยอดเขาที่สูงที่สุดในโลกห้าแห่ง เอาต์พุตจะมีอาร์เรย์ของตัวระบุสำหรับอ็อบเจ็กต์ที่แทรกใหม่ เป้าหมายของคู่มือนี้คือการอธิบายวิธีที่ MongoDB ใช้ดัชนีเพื่อจำกัดเอกสารที่ข้ามผ่านโดยเน้นรายละเอียดการสืบค้นในดัชนี คุณสามารถใช้เมธอด createIndex() เพื่อสร้างดัชนีในฟิลด์ความสูงของคอลเลกชันพีค เมื่อเราสร้างดัชนีฟิลด์เดียวในตัวอย่างนี้ เราสามารถสันนิษฐานได้ว่าเอกสารมีคีย์เดียว (ความสูงในตัวอย่างนี้) คุณควรลองอีกครั้งโดยใช้ดัชนี เนื่องจากคุณควรมีการสืบค้นแบบเดียวกับที่คุณทำก่อนหน้านี้
เนื่องจากดัชนีเป็นส่วนประกอบของการดำเนินการค้นหา ผลลัพธ์จะแตกต่างกัน ขั้นตอนที่สองคือการสร้างดัชนีที่ไม่ซ้ำกับตลาด คุณไม่สามารถเพิ่มเอกสารสองรายการในคอลเลกชันได้ หากค่า _id ทั้งสองค่าเหมือนกัน นี่เป็นเพราะฐานข้อมูลจะรักษาดัชนีฟิลด์เดียวในฟิลด์ _id โดยอัตโนมัติ ดังที่คุณจะเห็นในขั้นตอนนี้ ค่าของฟิลด์ที่กำหนดสามารถปรับแต่งสำหรับแต่ละเอกสารในคอลเลกชันได้โดยใช้ดัชนี ขั้นตอนที่สี่คือการเพิ่มดัชนีลงในฟิลด์ฝังตัวในฐานข้อมูล MongoDB เมื่อแบบสอบถามเกินความจุของฐานข้อมูล ประสิทธิภาพอาจได้รับผลกระทบอย่างมาก
เป้าหมายของขั้นตอนนี้คือการสาธิตวิธีการสร้างดัชนีเขตข้อมูลเดียวบนเขตข้อมูลในเอกสารที่ฝังตัว เมื่อมีจำนวนดัชนีมากเกินไป เป็นไปได้มากที่ประสิทธิภาพจะลดลงเช่นเดียวกับประสิทธิภาพหากมีดัชนีเพียงไม่กี่ตัว MongoDB จะใช้ดัชนีในลำดับสุดท้าย เนื่องจากฟิลด์ในดัชนีรวมอยู่ในลำดับสุดท้าย กล่าวอีกนัยหนึ่งคือ หลังจากที่ได้รับเอกสารทั้งหมดแล้ว ก็ไม่จำเป็นต้องจัดเรียงใหม่ ในตัวอย่างก่อนหน้านี้ ดัชนีถูกสร้างขึ้นเป็นรูปแบบจากน้อยไปหามากโดยใช้ไวยากรณ์ *ascents.total: 1 * และยอดภูเขาของคำขอเคียวรีที่เรียงลำดับจากมากไปน้อย สามารถใช้ดัชนีฟิลด์เดียวเพื่อระบุเอกสารทั้งหมดที่ MongoDB พยายามค้นหา เมื่อดัชนีพร้อมใช้งานเฉพาะส่วนแรกของแบบสอบถาม MongoDB จะทำการสแกนคอลเลกชันก่อน
ในบางกรณี ดัชนีผสมอาจไม่เหมือนกัน อาจเป็นประโยชน์ในการกำหนดดัชนีที่ครอบคลุมหลายฟิลด์เพื่อให้แน่ใจว่าไม่ต้องสแกนเพิ่มเติม ขั้นตอนที่หกคือการพัฒนาดัชนีแบบหลายคีย์ ขั้นตอนนี้สาธิตวิธีการทำงานของ MongoDB เมื่อฟิลด์ที่ใช้สร้างดัชนีเป็นฟิลด์ที่เก็บค่าหลายค่า เช่น อาร์เรย์ เนื่องจากไม่มีดัชนีสำหรับฟิลด์ตำแหน่ง MongoDB จึงทำการสแกนคอลเลกชันทั้งหมดเพื่อดำเนินการค้นหา ยอดเขาทั้งสี่แต่ละยอดนี้ครอบคลุมประเทศหนึ่งๆ ซึ่งเป็นอาร์เรย์ของค่าต่างๆ และเป็นตัวแทนของประเทศมากกว่าหนึ่งประเทศ ทุกฟิลด์ในอาร์เรย์จะสร้างดัชนีหลายคีย์ใน MongoDB โดยอัตโนมัติ
ตัวอย่างเช่น เอกสารที่มีฟิลด์ตำแหน่งที่มีอาร์เรย์ ["จีน เนปาล"] จะมีรายการดัชนีแยกกันสองรายการสำหรับเอกสารเดียวกัน รายการหนึ่งสำหรับจีน และอีกรายการสำหรับเนปาล MongoDB สามารถใช้ดัชนีได้อย่างมีประสิทธิภาพแม้ว่าแบบสอบถามจะร้องขอเพียงการจับคู่บางส่วนกับเนื้อหาในลักษณะนี้ ดัชนี MongoDB สามารถลดปริมาณข้อมูลที่ต้องวิเคราะห์ระหว่างการดำเนินการค้นหาโดยใช้โครงสร้างข้อมูลพิเศษ คุณลักษณะการจัดทำดัชนีส่วนย่อยของ MongoDB ถูกกล่าวถึงในบทช่วยสอนเพื่อปรับปรุงประสิทธิภาพการค้นหาในฐานข้อมูลที่ยุ่ง เรียนรู้เพิ่มเติมเกี่ยวกับการจัดทำดัชนี MongoDB จาก เอกสารอย่างเป็นทางการของ MongoDB
ดัชนี นอกเหนือจากการค้นหาแถวในตารางฐานข้อมูลทุกครั้งที่มีการเข้าถึงตาราง ยังสามารถใช้เพื่อค้นหาข้อมูลได้อย่างรวดเร็ว เป็นเรื่องง่ายที่จะสร้างดัชนีโดยใช้หนึ่งคอลัมน์หรือมากกว่าของตารางฐานข้อมูล ซึ่งช่วยให้สามารถค้นหาและเข้าถึงระเบียนที่เรียงลำดับได้อย่างรวดเร็วและมีประสิทธิภาพ
ระบบ NoSQL จัดเก็บดรรชนีการค้นหาไว้สองวิธี: ดรรชนีในสถานที่จัดเก็บไว้ใน ฐานข้อมูล NoSQL และผ่านบริการค้นหาระยะไกล โดยทั่วไป ระบบ NoSQL จะเก็บดัชนีและข้อมูลไว้ในโหนดเดียวกัน ระบบ NoSQL บางระบบใช้บริการค้นหาภายนอกสำหรับการค้นหาข้อความแบบเต็ม
เมื่อใช้ดัชนีเป็นเงื่อนไขตัวกรองในส่วนคำสั่ง WHERE ของแบบสอบถาม ไม่แนะนำให้ใช้ดัชนีในคอลัมน์ที่ส่งคืนแถวข้อมูลเป็นเปอร์เซ็นต์จำนวนมาก หากคุณมีรายการคำว่า "the" หรือ "and" ในดัชนีของหนังสือ คุณจะไม่สามารถค้นหาคำเหล่านั้นได้ สามารถใช้ตารางที่จัดทำดัชนีเพื่อรันชุดงานอัพเดตชุดใหญ่เป็นประจำ
เนื่องจากดัชนีใน MongoDB ไม่ต้องการการสแกนคอลเล็กชัน ซึ่งโดยปกติแล้วจะเกี่ยวข้องกับการสแกนเอกสารแต่ละรายการในคอลเล็กชันเพื่อค้นหาข้อมูลที่ตรงกับข้อความค้นหาของคุณ คุณจึงไม่จำเป็นต้องสแกนคอลเล็กชัน เมื่อคุณใช้ดัชนีที่ถูกต้อง คุณจะสามารถค้นหาได้อย่างมีประสิทธิภาพมากขึ้น เนื่องจากจำนวนเอกสารมีจำกัดตั้งแต่เริ่มต้น
เมื่อใดที่เราควรใช้ดัชนีฐานข้อมูล
ดัชนีคืออะไรและทำไมจึงใช้ ความเร็วและความสะดวกในการใช้งานของ ดัชนีข้อมูล ช่วยให้ดึงข้อมูลจากฐานข้อมูลได้ง่ายขึ้น วิธีนี้จะเร่งการสืบค้นที่เลือกและคำสั่ง where แม้ว่าจะปรับปรุงประสิทธิภาพ INSERT แต่ก็ลดประสิทธิภาพการ UPDATE ลงด้วย
ดัชนีของตารางฐานข้อมูลมีสำเนาของหนึ่งหรือหลายคอลัมน์ (หรือหลายคอลัมน์) ในทำนองเดียวกัน แต่ละแถวที่คัดลอกจะเชื่อมโยงกับแถวต้นฉบับในคอลัมน์ของตารางในดัชนี และลิงก์นี้จะปรากฏในแต่ละแถวที่คัดลอกด้วย เมื่อฐานข้อมูลดำเนินการอ่านมากกว่าการดำเนินการเขียน ดัชนีจะมีประโยชน์มากที่สุด คุณไม่จำเป็นต้องมีดัชนีสำหรับการกระทำที่คุณเขียนแทนที่จะอ่านในคอลัมน์ตารางของคุณ เป็นไปได้ที่จะสร้างดัชนีสำหรับหลายคอลัมน์ในฐานข้อมูล แต่ลำดับของคอลัมน์มีความสำคัญมาก ผู้ใช้จะสามารถค้นหาภาพยนตร์โดยใช้ชื่อผู้กำกับและดูว่าภาพยนตร์เรื่องใดที่ฉายตามลำดับเวลาโดยใช้คุณสมบัติใหม่ หากเราสร้างดัชนีด้วย release_date ก่อน เราจะไม่มีทางรู้ได้ว่าแต่ละรุ่นมี ID ผู้กำกับหลายรายการที่เชื่อมโยงกับดัชนีหรือไม่ ในตอนนี้กรรมการจะถูกร้องขอให้ค้นหาที่แม่นยำยิ่งขึ้น โดยมีการกำหนดวันที่เผยแพร่สำหรับผู้กำกับแต่ละคน ดัชนีฐานข้อมูล จะแยกตามต้นไม้ที่สมดุลหรือ B-tree
ส่วนย่อยของแถวในตารางสามารถดึงข้อมูลได้ด้วยดัชนี ทำให้ผลการสแกนตารางเร็วขึ้น ขึ้นอยู่กับความเร็วสัมพัทธ์ของการสแกนตารางและคลัสเตอร์ของแถวที่เกี่ยวข้องกับคีย์ดัชนี แถวที่เรียกโดยดัชนีจะแตกต่างกันไป
เมื่อพูดถึงตารางที่มีค่าต่างๆ มากมาย ดัชนีจะมีประโยชน์อย่างมากในการลดเวลาที่ใช้ในการค้นหา
Nosql ใช้ดัชนีหรือไม่
การใช้เทคนิคการจัดทำดัชนีสำหรับฐานข้อมูล NoSQL I การทำดัชนีโครงสร้างการจัดทำดัชนี คือกระบวนการจับคู่คีย์กับตำแหน่งของบันทึกข้อมูล ฐานข้อมูล NoSQL สามารถจัดทำดัชนีได้หลายวิธี ส่วนนี้จะอธิบายโดยสังเขปเกี่ยวกับวิธีการทั่วไปในการจัดทำดัชนี เช่น ดัชนี B-Tree, T-Tree และ O2-Tree
Mongodb: ฐานข้อมูลเชิงเอกสารที่มีประสิทธิภาพ
ฐานข้อมูล MongoDB เป็นฐานข้อมูลเชิงเอกสารที่ใช้ดัชนีหลายคีย์เพื่อสร้างดัชนีเนื้อหาของอาร์เรย์ ในกรณีนี้ เคียวรีสามารถใช้การจับคู่องค์ประกอบหรือองค์ประกอบของอาร์เรย์เพื่อกำหนดว่าเอกสารมีอาร์เรย์หรือไม่ นอกเหนือจาก ดัชนีหลัก แล้ว MongoDB ยังสนับสนุนดัชนีรองที่สามารถใช้เพื่อสืบค้นแอตทริบิวต์ที่ไม่ใช่หลัก
ควรใช้ดัชนีที่ไหน?
ควรใช้ดัชนีในฐานข้อมูลเพื่อเพิ่มความเร็วในการดึงข้อมูล สามารถใช้ดัชนีเพื่อปรับปรุงประสิทธิภาพของแบบสอบถาม SQL
ประกอบด้วยรายชื่อ หัวเรื่อง และหัวข้ออื่นๆ ที่เชื่อมโยงกับตำแหน่งที่พบ ระบบเหล่านี้ยังสามารถใช้ในฐานข้อมูลออนไลน์เพื่อจัดระเบียบและจัดหมวดหมู่ข้อมูล บทความนี้กล่าวถึงการสร้างและบำรุงรักษาดัชนีเช่นเดียวกับพื้นฐานของดัชนี ในฉบับร่างดัชนี คุณจะรวมหัวข้อหลักและหัวข้ออื่นๆ ไว้ด้วย ควรสร้างหมวดหมู่ย่อยเฉพาะในกรณีที่ผู้เขียนสนใจและเกี่ยวข้องกับหัวข้อของหนังสือ หากคุณกำลังเขียนเพื่อตีพิมพ์ในอุตสาหกรรม คุณอาจต้องใช้คำอื่นหรือคำสแลงสำหรับคำบางคำ เมื่อขึ้นต้นคำดรรชนี ให้ใช้คำนาม
รายการส่วนใหญ่ในดัชนีไม่มีคำที่เป็นตัวพิมพ์ใหญ่ คุณจะต้องเป็นตัวเอียงหากคุณกำลังอ้างอิงสิ่งพิมพ์ ผู้เผยแพร่โฆษณาบางรายมีตัวสร้างดัชนีระดับมืออาชีพที่รับรองว่าแต่ละหน้าในเว็บไซต์ของตนตรงกับตัวนับหน้าดัชนี คุณจะต้องแน่ใจว่าการสะกดชื่อหรือตำแหน่งของคุณนั้นสอดคล้องและถูกต้อง หากคุณใช้ตั้งแต่แรก เมื่ออ้างถึงนักวิจัยชื่อ John Grey คุณจะไม่สามารถจับคู่การแก้ไขอัตโนมัติของคุณกับชื่อของเขาหรือเธอในดัชนีได้
เมื่อคุณจัดทำดัชนี คุณจะมั่นใจได้ว่าคุณสามารถเข้าถึงข้อมูลที่คุณต้องการได้อย่างรวดเร็วและง่ายดาย คุณสามารถสร้างรายงานในระบบของคุณเพื่อช่วยในการตัดสินใจที่ดีขึ้นเกี่ยวกับธุรกิจของคุณ
เหตุใดเราจึงควรใช้การจัดทำดัชนีใน Mongodb
มีเหตุผลบางประการที่คุณอาจต้องการใช้การจัดทำดัชนีใน MongoDB:
1. การทำดัชนีสามารถปรับปรุงประสิทธิภาพการค้นหาของคุณ โดยเฉพาะอย่างยิ่งหากคุณกำลังค้นหาค่าเฉพาะเจาะจง แทนที่จะใช้การค้นหาข้อความแบบเต็ม
2. การจัดทำดัชนีสามารถช่วยคุณบังคับใช้ข้อจำกัดความเป็นเอกลักษณ์ในข้อมูลของคุณ ซึ่งจะมีประโยชน์หากคุณกำลังสร้างระบบที่อาศัยความสมบูรณ์ของข้อมูล
3. การจัดทำดัชนียังช่วยให้คุณใช้พื้นที่จัดเก็บข้อมูลได้อย่างเหมาะสม เนื่องจากการจัดทำดัชนีจะช่วยให้คุณสามารถจัดเก็บเฉพาะข้อมูลที่คุณต้องการเพื่อเรียกค้นผลลัพธ์ของคุณ
จากข้อมูลของ MongoDB ดัชนีที่มากเกินไปอาจส่งผลเสียต่อประสิทธิภาพได้เช่นกัน ในบทความนี้ ฉันจะทำการทดลองง่ายๆ 2-3 รายการและให้การวิเคราะห์พฤติกรรมบางอย่างที่ฉันพบเพื่อช่วยคุณกำหนดเวลาและจำนวนดัชนีที่ต้องใช้ มีการใช้การทดลอง N=1 เพื่อสร้างผลการวิจัยที่นำเสนอในบทความนี้ ฉันจะไม่ใช้อย่างอื่นเพื่อสร้างแอปของฉันเพราะ MongoDB ทำงานได้ดีอย่างน่าชื่นชม เราสร้างรายได้ 50 ล้านดอลลาร์ในแต่ละปีโดยใช้คลัสเตอร์ MongoDB หนึ่งคลัสเตอร์บนเวิร์กโหลดคลาวด์ขนาดเล็ก ต้องขอบคุณกลยุทธ์การจัดทำดัชนีที่ดี การมีรูปแบบการออกแบบเพียงเล็กน้อยและการระวังการทำงานที่ช้าทำให้ง่ายต่อการจัดการชุดเอกสารนับสิบล้านชุด
การสร้างดัชนีใน Sql Vs Nosql
มีความแตกต่างที่สำคัญบางประการระหว่างการจัดทำดัชนีในฐานข้อมูล SQL กับ NoSQL ประการแรก ฐานข้อมูล SQL มักจะใช้ดัชนี B-tree ในขณะที่ฐานข้อมูล NoSQL มักจะใช้ ดัชนีแฮช ประการที่สอง ฐานข้อมูล SQL มักจะทำดัชนีคอลัมน์ทั้งหมดในตาราง ในขณะที่ฐานข้อมูล NoSQL มักจะจัดทำดัชนีเฉพาะคอลัมน์ที่กำลังสอบถาม สุดท้าย ฐานข้อมูล SQL มักจะกำหนดให้มีการอัปเดตดัชนีเมื่อข้อมูลในตารางได้รับการอัปเดต ในขณะที่ฐานข้อมูล NoSQL มักจะอัปเดตดัชนีโดยอัตโนมัติ
ในโพสต์นี้ ฉันจะกล่าวถึงความแตกต่างระหว่างฐานข้อมูล SQL และ NoSQL และหารือเกี่ยวกับประสิทธิภาพ นอกจากนี้ ฉันจะให้รายการกรณีการใช้งานที่ดีกว่าอีกกรณีหนึ่ง ฐานข้อมูลทั้งหมดมีภาษาคิวรีหรือวิธีการสืบค้นข้อมูลของตนเอง ขึ้นอยู่กับฐานข้อมูลนั้น เมื่อเปรียบเทียบกับฐานข้อมูล SQL ฐานข้อมูล NoSQL มีประสิทธิภาพมากกว่าในการดำเนินการเขียนต่อวินาที เนื่องจากข้อมูลไม่มีโครงสร้างและไม่มีการตรวจสอบก่อนเข้าสู่ฐานข้อมูล จึงเป็นไปได้ที่จะแทรกหรือบันทึกข้อมูลที่มีรูปแบบไม่ถูกต้องหรือไม่ถูกต้อง เมื่ออ้างถึงฐานข้อมูล NoSQL ฐานข้อมูลแบบ "ไร้สคีมา" ไม่ต้องการสคีมาตายตัวในการป้อนและดึงข้อมูล ในสถานการณ์ที่จำเป็นต้องมีการดำเนินการอ่านหลายครั้งต่อวินาที ฐานข้อมูล SQL อาจเป็นตัวเลือกที่มีประสิทธิภาพ
สิ่งนี้มีประโยชน์อย่างยิ่งสำหรับบริการบันทึกข้อมูลซึ่งต้องจัดเก็บข้อมูลจำนวนมาก ฐานข้อมูลเหล่านี้มี กลไกดัชนี รุ่นใหม่ที่มีประสิทธิภาพมากกว่าและทนทานน้อยกว่าฐานข้อมูลแบบเดิม ฐานข้อมูล NoSQL นั้นทั้งมีประสิทธิภาพและเป็นที่นิยม แต่ฐานข้อมูล SQL นั้นมีหลายวิธี ทั้งหมดขึ้นอยู่กับความต้องการและศักยภาพขององค์กรของคุณ หากคุณต้องการเทคโนโลยีที่ผ่านการทดสอบการต่อสู้พร้อมความรู้ด้านอุตสาหกรรมมากมาย ให้ใช้ฐานข้อมูลแบบเดิม ในทางกลับกัน NoSQL เป็นเครื่องมือที่ดีที่สุดในการจัดเก็บข้อมูลที่ไม่มีโครงสร้างจำนวนมากโดยเร็วที่สุด
ดัชนี Nosql
ฐานข้อมูล NoSQL เป็นฐานข้อมูลที่ไม่ใช่เชิงสัมพันธ์ซึ่งไม่ได้ใช้โครงสร้างแบบตารางแบบดั้งเดิมของฐานข้อมูลเชิงสัมพันธ์ ฐานข้อมูล NoSQL มักใช้สำหรับข้อมูลขนาดใหญ่และเว็บแอปพลิเคชันแบบเรียลไทม์
ดัชนีรองประกอบด้วยอาร์เรย์ของแอตทริบิวต์ที่ไม่มีอยู่ในตารางพาเรนต์ของดัชนี มีการแบ่งพาร์ติชันและการจัดเรียงตารางแยกกัน ตรงกันข้ามกับตารางฐาน ซอฟต์แวร์นี้สามารถใช้เพื่อจัดเรียงและแบ่งพาร์ติชันข้อมูล ดัชนีรอง ตามที่เราอาจสันนิษฐานไว้ ไม่ประกอบด้วยตารางที่แบ่งพาร์ติชันด้วยคีย์พาร์ติชัน ตารางถูกจัดเก็บไว้ในโหนดเดียวกันกับตารางพาเรนต์ สามารถกำหนดดัชนีเพิ่มเติมได้โดยใช้ตารางพาร์ติชันในฐานข้อมูล NoSQL แบบคีย์-ค่า บนโหนดเดียวกับตารางฐาน ดัชนีรองคือโครงสร้างข้อมูล การนำดัชนีรองไปใช้ในส่วนการนำฐานข้อมูลในหน่วยความจำไปใช้นั้นเป็นเรื่องง่าย การทดลองนี้แสดงวิธีใช้กลยุทธ์การจัดทำดัชนีสองแบบ (สำเนาและการดึงข้อมูล)
การจัดทำดัชนี Mongodb
การทำดัชนี MongoDB เป็นกระบวนการที่สร้างโครงสร้างข้อมูลเพื่อเพิ่มประสิทธิภาพการสืบค้น ดัชนีสนับสนุนการดำเนินการสืบค้นอย่างมีประสิทธิภาพใน MongoDB หากไม่มีดัชนี MongoDB จะต้องสแกนทุกเอกสารในคอลเล็กชัน ซึ่งอาจมีค่าใช้จ่ายสูงและช้า
ดัชนีคือโครงสร้างข้อมูลพิเศษประเภทหนึ่งที่เก็บข้อมูลส่วนหนึ่งของคอลเลกชันในรูปแบบที่สามารถเข้าถึงได้ง่าย รายการดัชนีในลักษณะนี้ได้รับคำสั่งเพื่อให้การจับคู่ความเท่าเทียมกันและการดำเนินการค้นหาตามช่วงมีประสิทธิภาพทั้งคู่ MongoDB จัดทำดัชนีเอกสารในฟิลด์หรือฟิลด์ย่อยใดๆ ที่อยู่ในคอลเลกชันและสามารถกำหนดได้ที่ระดับคอลเลกชัน ดัชนีของ MongoDB ช่วยให้คุณค้นหาข้อมูลและดำเนินการค้นหาตามประเภทของข้อมูลและการค้นหาที่คุณต้องการ ในดัชนีผสม มีความแตกต่างอย่างมีนัยสำคัญระหว่างลำดับที่แสดงฟิลด์และลำดับที่ปรากฏ MongoDB ทำดัชนีข้อมูล ที่เก็บไว้ในอาร์เรย์โดยใช้ดัชนีหลายคีย์ MongoDB มีดัชนีสองประเภทสำหรับจัดการข้อมูลพิกัดในระบบจีโอซิงโครนัส: 2dsphere และ 2dsphere
แทนที่จะเป็นดัชนีกระจัดกระจาย รุ่น MongoDB 5.3 ให้คุณสร้างดัชนีคลัสเตอร์ ดัชนีที่ซ่อนอยู่จะไม่ปรากฏในตัววางแผนคิวรี และไม่สามารถใช้เพื่อสนับสนุนคิวรีได้ ดัชนีที่ซ่อนอยู่สามารถซ่อนอยู่ภายในตัววางแผนเพื่อให้ผู้ใช้สามารถเห็นว่าการลดลงของดัชนีอาจส่งผลต่อค่าของดัชนีอย่างไรโดยไม่ต้องลดลงจริง ใน MongoDB ผู้ใช้สามารถระบุได้ว่าจะใช้กฎใดกับสตริงการเปรียบเทียบ เช่น ตัวพิมพ์ใหญ่และเครื่องหมายเน้นเสียง หากการดำเนินการระบุการเรียงที่แตกต่างกัน การดำเนินการจะไม่สามารถทำการเปรียบเทียบสตริงใน ฟิลด์ที่มีการจัดทำดัชนี โดยใช้ดัชนีที่มีการเรียง บทช่วยสอนวิเคราะห์ประสิทธิภาพของคิวรีแสดงตัวอย่างสถิติของคิวรีที่ดำเนินการโดยมีและไม่มีดัชนี MongoDB ใช้ดัชนีเพื่อช่วยตอบสนองการค้นหาโดยใช้จุดตัดกัน
คีย์ดัชนีอยู่ภายใต้ข้อจำกัดบางประการในบางกรณี เมื่อสร้างดัชนีแล้ว ประสิทธิภาพของแอปพลิเคชันอาจลดลง โปรแกรมควบคุมอาจใช้ NumberLong(1) มากกว่า 1 เป็น ข้อมูลจำเพาะของดัชนี เป็นผลให้ดัชนีผลลัพธ์ไม่เปลี่ยนแปลง
คุณควรใช้ดัชนีใน Mongodb หรือไม่
ข้อดีและข้อเสียของการใช้ดัชนีใน MongoDB คืออะไร
ด้วยการจัดทำดัชนี MongoDB สามารถค้นหาข้อมูลได้เร็วขึ้นโดยการปรับปรุงประสิทธิภาพการสืบค้น ดัชนียังช่วยให้แน่ใจว่าข้อมูลสอดคล้องกันในชาร์ดและโหนดต่างๆ ในทางกลับกัน ดัชนียังสามารถเพิ่มความซับซ้อนและต้นทุนของการสืบค้น ดังนั้นควรใช้ด้วยความระมัดระวังในกรณีที่ไม่มีความจำเป็น
Mongodb Compound Index Vs Single Index
ดัชนีผสมไม่ได้จัดทำดัชนีเฉพาะในฟิลด์เดียวของเอกสาร พวกเขาจัดทำดัชนีในหลายฟิลด์ทั้งจากน้อยไปหามากหรือจากมากไปน้อย และพวกเขาเรียงลำดับข้อมูลของหลายฟิลด์เมื่อคุณป้อนฟิลด์
การจัดทำดัชนี MongoDB สามารถช่วยให้คุณใช้ข้อความค้นหาได้ดีขึ้น คำว่า ดัชนีผสม หมายถึงดัชนีที่มีการอ้างอิงหลายรายการไปยังฟิลด์เดียว ใน MongoDB สามารถใช้ฟิลด์ดัชนีแฮชเดียวเพื่อแสดงดัชนีผสมได้ ด้วยเหตุนี้ การสืบค้น เช่น db.collection.sort (ผู้ผลิต:1, ราคา:-1) จึงสามารถทำงานได้อย่างมีประสิทธิภาพมากขึ้นด้วยดัชนีที่เราสร้างขึ้น ในดัชนี MongoDB การ sort() จัดทำโดย MongoDB การจับคู่นิพจน์ MongoDB Sort (คำนำหน้าที่ตรงกัน) สามารถรับได้จากดัชนีที่มีระเบียนที่เรียงลำดับ ซึ่งหมายความว่า MongoDB สามารถรับการจับคู่นิพจน์การเรียงลำดับ (คำนำหน้าที่ตรงกัน) จากดัชนีใดๆ ที่มีระเบียนที่เรียงลำดับ หาก MongoDB ไม่สามารถสร้างลำดับการจัดเรียงโดยใช้ดัชนีได้ จะดำเนินการปิดกั้นการเรียงลำดับ
ดัชนีเดี่ยวใน Mongodb คืออะไร?
MongoDB จัดทำดัชนีเอกสารตามฟิลด์ที่จัดเก็บ รวมถึงฟิลด์อื่นๆ ในคอลเลกชัน คอลเลกชันทั้งหมดสามารถมีดัชนีในฟิลด์ -id และแอปพลิเคชันและผู้ใช้สามารถเพิ่มดัชนีเพิ่มเติมเพื่อรองรับการสืบค้นและการดำเนินการที่สำคัญ แผนภาพดัชนีจัดเรียงจากน้อยไปหามากหรือมากไปน้อยในฟิลด์เดียวของเอกสาร
เหตุใดการจัดทำดัชนีจึงมีความสำคัญ
กระบวนการสร้างดัชนีของเอกสารหรือชุดเอกสารเพื่อให้เรียกค้นข้อมูลได้เร็วและง่ายขึ้น เรียกว่า การสร้างดัชนี การจัดทำดัชนีมีประโยชน์ด้วยเหตุผลสองประการ ข้อได้เปรียบประการแรกของดัชนีคือสามารถช่วยให้คุณค้นหาข้อมูลเฉพาะในเอกสารขนาดใหญ่ได้เร็วขึ้น ตัวอย่างเช่น หากคุณกำลังมองหาบทความเฉพาะเจาะจงในหนังสือพิมพ์ ดัชนีจะสามารถบอกคุณได้ว่าชื่อบทความคืออะไร ข้อดีอย่างหนึ่งของดัชนีคือทำให้ผู้พิการสามารถเข้าถึงข้อมูลในเอกสารได้ง่ายขึ้น ตัวอย่างเช่น ดัชนีหุ้นสามารถใช้เพื่อค้นหาข้อมูลเกี่ยวกับบริษัทใดบริษัทหนึ่งโดยใช้สัญลักษณ์แสดงหุ้น ซึ่งทำให้คนตาบอดสามารถทำเช่นนั้นได้
ตัวเลือกต่าง ๆ สำหรับการสร้างดัชนีใน Mongodb คืออะไร?
MongoDB ทำดัชนีเนื้อหาในอาร์เรย์ใน MongoDB โดยใช้ดัชนีหลายคีย์ MongoDB สร้างรายการดัชนีแยกต่างหากสำหรับแต่ละองค์ประกอบของอาร์เรย์ หากสร้างดัชนีฟิลด์ด้วยค่าอาร์เรย์ ในดัชนีหลายคีย์เหล่านี้ คิวรีสามารถเลือกเอกสารที่มีอาร์เรย์โดยจับคู่องค์ประกอบหรือส่วนต่างๆ ของอาร์เรย์กับดัชนีหลายคีย์
การลบดัชนีใน Mongodb จะทำให้ประสิทธิภาพการค้นหาลดลง
ข้อเสียประการหนึ่งคือ MongoDB จะถูกบังคับให้วิเคราะห์ข้อมูลใหม่เพื่อค้นหาระเบียนที่เกี่ยวข้องหากดัชนีถูกลบออก
บทนำ Mongodb
Mongodb เป็นระบบฐานข้อมูลเชิงเอกสารที่มีประสิทธิภาพ มีคุณสมบัติการค้นหาตามดัชนีที่ทำให้การดึงข้อมูลทำได้ง่ายและรวดเร็ว Mongodb ยังเสนอคุณสมบัติการปรับขนาดซึ่งช่วยให้สามารถจัดการข้อมูลขนาดใหญ่ได้
MongoDB เป็นฐานข้อมูล NoSQL ที่ข้ามแพลตฟอร์มและโอเพ่นซอร์ส และเว็บแอปพลิเคชันที่ใช้โหนดจำนวนมากใช้เพื่อจัดเก็บข้อมูล ในบทช่วยสอนนี้ ฉันจะแสดงวิธีติดตั้ง Mongo และวิธีใช้เพื่อจัดเก็บและสืบค้นข้อมูล คุณจะได้เรียนรู้วิธีโต้ตอบกับฐานข้อมูล Mongo โดยใช้โปรแกรมโหนดและตรวจสอบความแตกต่างบางประการระหว่าง Mongo และฐานข้อมูลเชิงสัมพันธ์แบบดั้งเดิม เป็นเรื่องปกติที่ MongoDB จะดาวน์โหลดและติดตั้งผ่านช่องทางซอฟต์แวร์ Linux อย่างเป็นทางการ แต่บางครั้งอาจส่งผลให้เป็นเวอร์ชันที่ล้าสมัย หากคุณมีการกระจาย Linux ที่ไม่ใช่ Ubuntu คุณสามารถเรียนรู้เพิ่มเติมเกี่ยวกับการติดตั้งได้โดยไปที่หน้านี้ MongoDB ยังมีเครื่องมือที่เรียกว่า Compass ที่ให้คุณเชื่อมต่อและจัดการฐานข้อมูลของคุณโดยใช้อินเทอร์เฟซผู้ใช้แบบกราฟิก ด้วย MongoDB ไม่จำเป็นต้องมีการควบคุมการเข้าถึง
หากคุณใช้ Mongo ในการผลิต คุณควรเปลี่ยนแปลงคุณลักษณะนี้ CRUD ตัวย่อใช้เพื่อระบุว่ามีการสร้าง อ่าน อัปเดต หรือลบบางสิ่ง นี่คือการดำเนินการฐานข้อมูลพื้นฐานสี่ประการที่คุณต้องทำหากคุณต้องการสร้างแอปพลิเคชัน ต่อไปนี้คือขั้นตอนบางส่วนที่คุณสามารถทำได้เพื่อเรียกเอกสารผู้ใช้ทั้งหมดของคุณ สิ่งนี้สอดคล้องกับแบบสอบถามสำหรับฐานข้อมูล SQL ที่อ่านจากคอลัมน์ "จากผู้ใช้" MongoDB มีหลายวิธีในการอัปเดตเอกสาร รวมถึงการดำเนินการสร้าง ตัวอย่างเช่น คุณสามารถตั้งค่าการลงทะเบียนเป็นอายุ 18 ปีสำหรับผู้ใช้ทุกคนที่อายุต่ำกว่า 18 ปี
คุณไม่จำเป็นต้องระบุจำนวนหรือประเภทของคอลัมน์เมื่อใช้ MongoDB ซึ่งเป็นฐานข้อมูลที่ไม่มีสคีมา ในทางกลับกัน สามารถใช้ JSON Schema เพื่อระบุกฎการตรวจสอบสำหรับข้อมูลของเรา ในการสื่อสารกับเซิร์ฟเวอร์ MongoDB คุณต้องใช้ไลบรารีฝั่งไคลเอ็นต์ที่เรียกว่าไดรเวอร์ การเรียกกลับ สัญญา หรือการรอเป็นวิธีการที่เป็นไปได้ทั้งหมดสำหรับการโต้ตอบกับฐานข้อมูล ในการเชื่อมต่อกับ Mongo คุณต้องระบุชื่อและรหัสผ่านในรหัสของคุณ MongoDB มีไดรเวอร์ในตัว แต่เรียกอีกอย่างว่าไดรเวอร์ MongoDB ในการจัดการข้อมูลใน MongoDB คุณต้องสร้างสคีมาก่อน รูปร่างของแต่ละเอกสารในคอลเลกชัน MongoDB ถูกกำหนดโดยการแมปของสคีมา
Mongodb: ทางเลือก Nosql สำหรับฐานข้อมูลเชิงสัมพันธ์
MongoDB เป็นแพลตฟอร์มการจัดการฐานข้อมูล NoSQL แบบโอเพ่นซอร์สที่ให้บริการ API เพื่อจัดการชุดข้อมูลกระจายขนาดใหญ่ในลักษณะที่ปลอดภัยและมีประสิทธิภาพ MongoDB เป็นฐานข้อมูลเอกสารที่ไม่สัมพันธ์กันซึ่งรองรับการจัดเก็บ JSON และโครงสร้างเอกสารที่ไม่สัมพันธ์กัน ฐานข้อมูลเชิงสัมพันธ์แบบดั้งเดิมอาจใช้เวลาถึงห้านาทีในการประมวลผลใน MongoDB นอกจากนี้ MongoDB ยังเป็นทางเลือกที่ดีกว่าสำหรับฐานข้อมูลเชิงสัมพันธ์สำหรับการจัดการชุดข้อมูลแบบกระจายจำนวนมาก