Sharding เป็นเพียงชื่ออื่นสำหรับ "การแบ่งพาร์ติชันในแนวนอน" ของฐานข้อมูล คุณอาจต้องการค้นหาคำนั้นเพื่อให้ชัดเจนขึ้น
จากWikipedia :
การแบ่งพาร์ติชันแนวนอนเป็นหลักการออกแบบโดยที่แถวของตารางฐานข้อมูลจะถูกจัดแยกต่างหากแทนที่จะแยกตามคอลัมน์ (สำหรับการทำให้เป็นมาตรฐาน) แต่ละพาร์ติชันเป็นส่วนหนึ่งของชิ้นส่วนซึ่งอาจอยู่ในเซิร์ฟเวอร์ฐานข้อมูลแยกต่างหากหรือตำแหน่งทางกายภาพ ข้อดีคือจำนวนแถวในแต่ละตารางจะลดลง (สิ่งนี้จะลดขนาดดัชนีซึ่งจะช่วยปรับปรุงประสิทธิภาพการค้นหา) หากการแบ่งส่วนจะขึ้นอยู่กับแง่มุมที่แท้จริงของข้อมูล (เช่นลูกค้าในยุโรปและลูกค้าชาวอเมริกัน) ก็อาจเป็นไปได้ที่จะสรุปความเป็นสมาชิกของชิ้นส่วนที่เหมาะสมได้ง่ายและโดยอัตโนมัติและค้นหาเฉพาะชิ้นส่วนที่เกี่ยวข้อง
ข้อมูลเพิ่มเติมเกี่ยวกับการแยกชิ้นส่วน:
ประการแรกเซิร์ฟเวอร์ฐานข้อมูลแต่ละเซิร์ฟเวอร์มีโครงสร้างตารางเหมือนกัน ประการที่สองการบันทึกข้อมูลจะแยกทางตรรกะในฐานข้อมูลเศษ แตกต่างจากฐานข้อมูลที่แบ่งพาร์ติชันบันทึกข้อมูลที่สมบูรณ์แต่ละรายการมีอยู่ในชาร์ดเดียว (ยกเว้นว่ามีการทำมิรเรอร์สำหรับการสำรองข้อมูล / ความซ้ำซ้อน) ด้วยการดำเนินการ CRUD ทั้งหมดที่ดำเนินการในฐานข้อมูลนั้น คุณอาจไม่ชอบคำศัพท์ที่ใช้ แต่สิ่งนี้แสดงให้เห็นถึงวิธีที่แตกต่างในการจัดระเบียบฐานข้อมูลเชิงตรรกะออกเป็นส่วนเล็ก ๆ
ปรับปรุง:คุณจะไม่ทำลาย MVC งานในการกำหนดชิ้นส่วนที่ถูกต้องในการจัดเก็บข้อมูลจะทำโดยชั้นการเข้าถึงข้อมูลของคุณอย่างโปร่งใส ที่นั่นคุณจะต้องกำหนดเศษที่ถูกต้องตามเกณฑ์ที่คุณใช้ในการแบ่งส่วนฐานข้อมูลของคุณ (เนื่องจากคุณต้องแบ่งส่วนฐานข้อมูลด้วยตนเองเป็นเศษชิ้นส่วนที่แตกต่างกันตามลักษณะที่เป็นรูปธรรมของแอปพลิเคชันของคุณ) จากนั้นคุณต้องระวังเมื่อโหลดและจัดเก็บข้อมูลจาก / ลงในฐานข้อมูลเพื่อใช้เศษที่ถูกต้อง
บางทีตัวอย่างนี้ด้วยรหัส Java ทำให้ค่อนข้างชัดเจน (เกี่ยวกับโครงการHibernate Shards ) วิธีนี้จะทำงานในสถานการณ์โลกแห่งความจริง
เพื่อระบุ " why sharding
": ส่วนใหญ่จะเป็นแอปพลิเคชันขนาดใหญ่มากเท่านั้นโดยมีข้อมูลจำนวนมาก ก่อนจะช่วยลดเวลาตอบสนองสำหรับการสืบค้นฐานข้อมูล ประการที่สองคุณสามารถใช้เครื่อง "สิ้นล่าง" ราคาถูกกว่าเพื่อโฮสต์ข้อมูลของคุณแทนเซิร์ฟเวอร์ขนาดใหญ่เครื่องเดียวซึ่งอาจไม่เพียงพออีกต่อไป