การทำดัชนีใน DBMS: คืออะไร ประเภทของดัชนีพร้อมตัวอย่าง

การทำดัชนีคืออะไร?

การจัดทำดัชนี เป็นเทคนิคโครงสร้างข้อมูลที่ช่วยให้คุณสามารถดึงบันทึกจากไฟล์ฐานข้อมูลได้อย่างรวดเร็ว ดัชนีคือตารางขนาดเล็กที่มีเพียงสองคอลัมน์ คอลัมน์แรกประกอบด้วยสำเนาของคีย์หลักหรือคีย์ตัวเลือกของตาราง คอลัมน์ที่สองประกอบด้วยชุดของ ชี้ สำหรับเก็บที่อยู่ของบล็อกดิสก์ที่เก็บค่าคีย์เฉพาะนั้นไว้

ดัชนี –

  • ใช้คีย์การค้นหาเป็นอินพุต
  • ส่งคืนคอลเลกชันของเรกคอร์ดที่ตรงกันอย่างมีประสิทธิภาพ

ประเภทของการจัดทำดัชนีใน DBMS

ประเภทของการจัดทำดัชนีใน DBMS
ประเภทของดัชนีในฐานข้อมูล

การจัดทำดัชนีในฐานข้อมูลถูกกำหนดตามคุณลักษณะการจัดทำดัชนี วิธีการจัดทำดัชนีหลักสองประเภทคือ:

  • การจัดทำดัชนีเบื้องต้น
  • การจัดทำดัชนีรอง

ดัชนีหลักใน DBMS

ดัชนีหลักเป็นไฟล์เรียงลำดับซึ่งมีความยาวคงที่โดยมีสองช่อง ฟิลด์แรกเหมือนกับคีย์หลัก และฟิลด์ที่สองจะชี้ไปที่บล็อกข้อมูลเฉพาะนั้น ในดัชนีหลัก จะมีความสัมพันธ์แบบหนึ่งต่อหนึ่งระหว่างรายการในตารางดัชนีเสมอ

การจัดทำดัชนีหลักใน DBMS ยังแบ่งออกเป็นสองประเภทเพิ่มเติม

  • ดัชนีหนาแน่น
  • ดัชนีกระจัดกระจาย

ดัชนีหนาแน่น

ในดัชนีที่มีความหนาแน่นสูง จะมีการสร้างบันทึกสำหรับทุกคีย์การค้นหาที่มีค่าในฐานข้อมูล วิธีนี้ช่วยให้คุณค้นหาได้เร็วขึ้น แต่ต้องการพื้นที่เพิ่มเติมในการจัดเก็บบันทึกดัชนี ในการจัดทำดัชนีนี้ เรคคอร์ดเมธอดประกอบด้วยค่าคีย์การค้นหาและชี้ไปยังเรคคอร์ดจริงบนดิสก์

ดัชนีหนาแน่น

ดัชนีกระจัดกระจาย

เป็นบันทึกดัชนีที่ปรากฏเฉพาะบางค่าในไฟล์ Sparse Index ช่วยให้คุณแก้ไขปัญหาการจัดทำดัชนีหนาแน่นได้ DBMS- ในเทคนิคการจัดทำดัชนีนี้ ช่วงของคอลัมน์ดัชนีจะจัดเก็บที่อยู่บล็อกข้อมูลเดียวกัน และเมื่อจำเป็นต้องดึงข้อมูล ที่อยู่บล็อกจะถูกดึงออกมา

อย่างไรก็ตาม ดัชนีแบบกระจายจะจัดเก็บบันทึกดัชนีสำหรับค่าคีย์การค้นหาบางค่าเท่านั้น ต้องการพื้นที่น้อยกว่า ค่าใช้จ่ายในการบำรุงรักษาน้อยกว่าสำหรับการแทรก และการลบ แต่จะช้ากว่าเมื่อเทียบกับดัชนีหนาแน่นสำหรับการค้นหาบันทึก

ด้านล่างนี้คือดัชนีฐานข้อมูล ตัวอย่าง Sparse Index

ดัชนีกระจัดกระจาย

ดัชนีรองใน DBMS

ดัชนีรองใน DBMS สามารถสร้างขึ้นได้จากฟิลด์ที่มีค่าเฉพาะสำหรับแต่ละเรกคอร์ด และควรเป็นคีย์ตัวเลือก เรียกอีกอย่างว่าดัชนีที่ไม่จัดกลุ่ม

เทคนิคการสร้างดัชนีฐานข้อมูลสองระดับนี้ใช้เพื่อลดขนาดการแมปของระดับแรก สำหรับระดับแรก จึงต้องเลือกช่วงตัวเลขขนาดใหญ่เนื่องจากเหตุนี้ ขนาดการแมปจึงยังคงเล็กอยู่เสมอ

ตัวอย่างดัชนีรอง

มาทำความเข้าใจการจัดทำดัชนีรองด้วยตัวอย่างดัชนีฐานข้อมูล:

ในฐานข้อมูลบัญชีธนาคาร ข้อมูลจะถูกจัดเก็บตามลำดับโดย acc_no คุณอาจต้องการค้นหาบัญชีทั้งหมดในสาขาเฉพาะของธนาคาร ABC

ที่นี่ คุณสามารถมีดัชนีรองใน DBMS สำหรับทุกคีย์การค้นหาได้ บันทึกดัชนีคือจุดบันทึกไปยังที่เก็บข้อมูลที่มีตัวชี้ไปยังบันทึกทั้งหมดที่มีค่าคีย์การค้นหาเฉพาะ

ตัวอย่างดัชนีรอง

Clusterการทำดัชนีใน DBMS

ในดัชนีแบบคลัสเตอร์ ระเบียนจะถูกเก็บไว้ในดัชนี ไม่ใช่ตัวชี้ บางครั้งดัชนีจะถูกสร้างบนคอลัมน์ที่ไม่ใช่คีย์หลักซึ่งอาจไม่ซ้ำกันสำหรับแต่ละระเบียน ในสถานการณ์เช่นนี้ คุณสามารถจัดกลุ่มคอลัมน์สองคอลัมน์ขึ้นไปเพื่อรับค่าที่ไม่ซ้ำกันและสร้างดัชนีที่เรียกว่าดัชนีแบบคลัสเตอร์ ซึ่งจะช่วยให้คุณระบุระเบียนได้เร็วขึ้นด้วย

ตัวอย่าง:

ลองสมมติว่าบริษัทแห่งหนึ่งรับพนักงานจำนวนมากจากแผนกต่างๆ ในกรณีนี้ ดัชนีคลัสเตอร์ใน DBMS ควรสร้างขึ้นสำหรับพนักงานทุกคนที่อยู่ในแผนกเดียวกัน

ถือว่าอยู่ในคลัสเตอร์เดียว และจุดดัชนีจะชี้ไปที่คลัสเตอร์ทั้งหมด ในที่นี้ แผนก _no เป็นคีย์ที่ไม่ซ้ำกัน

ดัชนีหลายระดับคืออะไร?

การจัดทำดัชนีหลายระดับใน ฐานข้อมูล ถูกสร้างขึ้นเมื่อดัชนีหลักไม่พอดีกับหน่วยความจำ ในวิธีการสร้างดัชนีประเภทนี้ คุณสามารถลดจำนวนการเข้าถึงดิสก์เพื่อย่อบันทึกใดๆ และเก็บไว้ในดิสก์เป็นไฟล์ตามลำดับ และสร้างฐานแบบกระจัดกระจายบนไฟล์นั้น

ดัชนีหลายระดับ

ดัชนีบีทรี

ดัชนี B-tree เป็นโครงสร้างข้อมูลที่ใช้กันอย่างแพร่หลายสำหรับการจัดทำดัชนีแบบต้นไม้ใน DBMS เป็นรูปแบบการจัดทำดัชนีแบบต้นไม้หลายระดับในเทคนิค DBMS ซึ่งมีความสมดุล ต้นไม้ค้นหาแบบไบนารี- ลีฟโหนดทั้งหมดของทรี B แสดงถึงตัวชี้ข้อมูลจริง

นอกจากนี้ โหนดปลายสุดทั้งหมดยังเชื่อมโยงกับรายการลิงก์ ซึ่งช่วยให้ทรี B สามารถรองรับการเข้าถึงทั้งแบบสุ่มและตามลำดับ

ดัชนีบีทรี

  • โหนดลูกค้าเป้าหมายต้องมีค่าระหว่าง 2 ถึง 4 ค่า
  • ทุกเส้นทางจากรากสู่ใบไม้ส่วนใหญ่จะมีความยาวเท่ากัน
  • โหนดที่ไม่ใช่ลีฟนอกเหนือจากโหนดรูทจะมีโหนดลูกระหว่าง 3 ถึง 5 โหนด
  • ทุกโหนดที่ไม่ใช่รูทหรือลีฟจะมีลูกระหว่าง n/2] ถึง n ลูก

ข้อดีของการจัดทำดัชนี

ข้อดี/ข้อได้เปรียบที่สำคัญของการจัดทำดัชนีคือ:

  • ช่วยให้คุณลดจำนวนการดำเนินการ I/O ทั้งหมดที่จำเป็นในการดึงข้อมูลดังกล่าว ดังนั้นคุณไม่จำเป็นต้องเข้าถึงแถวในฐานข้อมูลจากโครงสร้างดัชนี
  • ช่วยให้ผู้ใช้สามารถค้นหาและดึงข้อมูลได้เร็วขึ้น
  • การทำดัชนียังช่วยให้คุณลดพื้นที่ตาราง เนื่องจากคุณไม่จำเป็นต้องลิงก์ไปยังแถวในตาราง เนื่องจากไม่จำเป็นต้องจัดเก็บ ROWID ไว้ในดัชนี ดังนั้นคุณจะสามารถลดพื้นที่โต๊ะได้
  • คุณไม่สามารถจัดเรียงข้อมูลในโหนดลูกค้าเป้าหมายได้เนื่องจากค่าของคีย์หลักจัดประเภทไว้

ข้อเสียของการจัดทำดัชนี

ข้อเสีย/ข้อเสียที่สำคัญของการจัดทำดัชนีคือ:

  • เพื่อดำเนินการระบบการจัดการฐานข้อมูลการทำดัชนี คุณต้องมีคีย์หลักบนตารางที่มีค่าไม่ซ้ำกัน
  • คุณไม่สามารถดำเนินการจัดทำดัชนีอื่นใดในฐานข้อมูลบนข้อมูลที่จัดทำดัชนีได้
  • คุณไม่ได้รับอนุญาตให้แบ่งพาร์ติชันตารางที่จัดดัชนี
  • การทำดัชนี SQL ลดประสิทธิภาพในการสืบค้น INSERT, DELETE และ UPDATE

สรุป

  • การจัดทำดัชนีเป็นตารางขนาดเล็กที่ประกอบด้วยสองคอลัมน์
  • วิธีการจัดทำดัชนีหลักสองประเภทคือ 1) การจัดทำดัชนีหลัก 2) การจัดทำดัชนีรอง
  • ดัชนีหลักเป็นไฟล์เรียงลำดับซึ่งมีความยาวคงที่โดยมีสองช่อง
  • การจัดทำดัชนีหลักยังแบ่งออกเป็นสองประเภทเพิ่มเติม 1) ดัชนีหนาแน่น 2) ดัชนีกระจัดกระจาย
  • ในดัชนีที่มีความหนาแน่นสูง จะมีการสร้างบันทึกสำหรับทุกคีย์การค้นหาที่มีค่าในฐานข้อมูล
  • วิธีการจัดทำดัชนีแบบกระจัดกระจายช่วยให้คุณแก้ไขปัญหาการจัดทำดัชนีแบบหนาแน่นได้
  • ดัชนีรองใน DBMS เป็นวิธีการจัดทำดัชนีซึ่งมีคีย์การค้นหาระบุลำดับที่แตกต่างจากลำดับตามลำดับของไฟล์
  • Clusterดัชนี ing ถูกกำหนดให้เป็นไฟล์ข้อมูลการสั่งซื้อ
  • การทำดัชนีหลายระดับจะถูกสร้างขึ้นเมื่อดัชนีหลักไม่พอดีกับหน่วยความจำ
  • ประโยชน์ที่ใหญ่ที่สุดของการสร้างดัชนีคือช่วยให้คุณลดจำนวนการดำเนินการ I/O ทั้งหมดที่จำเป็นในการดึงข้อมูลดังกล่าว
  • ข้อเสียเปรียบที่ใหญ่ที่สุดในการดำเนินการระบบจัดการฐานข้อมูลการทำดัชนี คุณต้องมีคีย์หลักบนตารางที่มีค่าเฉพาะ