ดัชนีเทียบกับพาร์ติชัน


20

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

หรือกล่าวอีกนัยหนึ่งคือประสิทธิภาพที่ชาญฉลาด: เป็นไปได้หรือไม่ที่จะปรับปรุงประสิทธิภาพเดียวกันด้วยดัชนีเช่นเดียวกับการแบ่งพาร์ติชันของตาราง?


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

คำตอบ:


18

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

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

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


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

7

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

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

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.