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