การทำดัชนีใน 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 ทั้งหมดที่จำเป็นในการดึงข้อมูลดังกล่าว
- ข้อเสียเปรียบที่ใหญ่ที่สุดในการดำเนินการระบบจัดการฐานข้อมูลการทำดัชนี คุณต้องมีคีย์หลักบนตารางที่มีค่าเฉพาะ